要修改表单时,最佳做法是什么?

时间:2014-05-08 19:12:50

标签: vb.net user-interface

我正在修改应用程序,我需要根据用户设置的配置添加和删除字段。

现在,我使用两个包含相应字段的面板,我隐藏并在需要时显示它们。我重新调整表单大小并相应地重新定位表单中的元素。但是,当您处于编辑模式时,很难修改面板和表单。

我也认为既然它重复使用了很多元素,那么创建另一个单独的形式是不明智的,但也许只是我。

我不确定如何重新安排所有这些并且真的想要一些提示。

2 个答案:

答案 0 :(得分:1)

您似乎正在尝试根据不同的控件调整表单大小。我建议你了解TableLayoutPanels。对于每个TableLayoutPanel行/列,您可以将该行/列设置为AutoSize。

这意味着如果没有任何内容可显示(也就是隐藏),您的TableLayoutPanel将相应地自动调整大小。


实施例

  1. 您的TableLayoutPanel停靠在MainForm上。
  2. 您的TableLayoutPanel中有三行。
  3. 第一行将决定是否应隐藏或显示第2行和第3行。
  4. Form1.vb [设计]

    Form Design

    使用以下代码,TableLayoutPanel将适当地调整它的控件:

    Private Sub RadioButton1_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles RadioButton1.CheckedChanged, RadioButton2.CheckedChanged
        Select Case True
            Case RadioButton1.Checked 'Show Row #2
                Label1.Show()
                Label2.Hide()
            Case RadioButton2.Checked 'Show Row #3
                Label1.Hide()
                Label2.Show()
        End Select
    End Sub
    

    结果如下:

    Show Row #2 Show Row #3


    它是如何工作的?

    几乎所有事情都由设计师完成。

    • Label1被放置在TableLayoutPanel的第二行(Index = 1)
    • Label2被放置在TableLayoutPanel的第3行(Index = 2)
    • 两个标签都停靠在"填充"行
    • 然后将标签设置为TextAlign=Center
    • TableLayoutPanel的Row2设置为" AutoSize"
    • TableLayoutPanel的Row3设置为" AutoSize"

    TableLayoutPanel Resizer

答案 1 :(得分:0)

以不同的形式创建两组独立的控件。然后将它们作为复合控件导入。然后,您可以使用.visible控件属性隐藏和显示。