Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 当您想要修改表单时,最佳做法是什么_Vb.net_User Interface - Fatal编程技术网

Vb.net 当您想要修改表单时,最佳做法是什么

Vb.net 当您想要修改表单时,最佳做法是什么,vb.net,user-interface,Vb.net,User Interface,我正在修改应用程序,需要根据用户设置的配置添加和删除字段 现在,我使用两个包含相应字段的面板,在需要时隐藏并显示它们。我重新调整表单的大小,并相应地重新定位表单中的元素。但是,当您处于编辑模式时,很难修改面板和表单 我还认为,因为它重复使用了很多元素,所以创建另一个单独的表单是不明智的,但可能只是我自己 我不知道如何重新安排所有这些,我真的想要一些提示。以不同的形式创建两组独立的控件。然后将它们作为复合控件导入。然后,您可以使用.visible控件属性根据需要隐藏和显示表单。您似乎正试图根据不同

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

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

我还认为,因为它重复使用了很多元素,所以创建另一个单独的表单是不明智的,但可能只是我自己


我不知道如何重新安排所有这些,我真的想要一些提示。

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

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

这意味着如果没有任何显示(即隐藏),TableLayoutPanel将相应地自动调整大小


例子
  • 您的TableLayoutPanel已停靠到主窗体
  • 在TableLayoutPanel中有三行
  • 第一行将决定是否隐藏或显示第二行和第三行
  • Form1.vb[设计]

    使用以下代码,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
    
    结果如下:


    它是如何工作的? 几乎所有的事情都是由设计师完成的

    • Label1已放置在TableLayoutPanel的第二行(索引=1)
    • Label2已放置在TableLayoutPanel的第三行(索引=2)
    • 两个标签都停靠在“填充”行中
    • 然后将标签设置为
      TextAlign=Center
    • TableLayoutPanel的第2行设置为“自动调整大小”
    • TableLayoutPanel的第3行设置为“自动调整大小”

    当你说“面板”时,你是在说工具箱中的某个特定控件吗?我建议使用一个可更改的控件,您可以像datagridview一样更改其填充,或者使用两个预先完成的表单并根据config.Yes打开适当的表单。面板是visual studio工具箱中的控件。它重新组合字段,可以显示或隐藏。嗯,我从来没有用过那个。那么,我个人可能会有两个predone面板,只有在适当的配置情况下才可见。但是,我认为可能有更好的方法,这正是我所做的,但因为我的面板大小不同。在编辑模式下,无法轻松修改不好的表单。您可以使用FlowLayoutPanel获得所需内容。我不确定“重组字段”从何而来-它不在NET4.5中。这是你做的用户控件吗?