短版本:VB.Net Windows窗体的功能控件通常从工具箱拖到窗体上。控件的代码直接进入窗体。通常这很好,但是否可以将UI控件(如面板(的代码写入一个单独的文件,然后导入或以其他方式包含到主窗体类中?
上下文(又称长版本(:我有一个表单,左侧有一列不变的导航按钮。表单的其余部分由不同的面板占据,这些面板又有自己的不同控件。单击左侧的不同按钮将显示这些不同的面板(单击按钮"A"将显示面板"A";单击按钮"B"将显示板"B"等(,但左侧菜单应保持不变。
我很难在VB.Net中以优雅的方式实现这个设计。如果我把每个面板都做成一个单独的Form,我就必须在每个文件中复制构建不变的左侧菜单的代码,这太可怕了。我尝试使用继承的窗体,这样单独的面板就会继承主窗体的左侧菜单,但这意味着每次单击菜单都会在一个新窗口中萌芽新窗体,尽管左侧菜单是继承的,但我单击的菜单和新窗口中外观相同的菜单在内存中不是相同的对象,彼此一无所知。
我只想要一个带有中心内容的窗口,它会根据你点击左侧的内容进行更改。解决这个问题的方法是让面板只是面板,而不是像我目前所做的那样单独的表单。但这在组织上会变得混乱,因为所有面板的代码都必须在一个巨大的主文件中。因此,我的问题有了一个简短的形式(见上文(:我如何在一个单独的文件中对一个面板进行编码,然后将其放入主形式的折叠中?
听起来你想使用用户控件。为你想要的四件事中的每一件创建一个用户控件,然后将它们添加到面板中,根据按下的按钮使每一件都可见或不可见。