【发布时间】:2011-10-22 19:25:11
【问题描述】:
短版:VB.Net Windows 窗体具有通常从工具箱拖到窗体上的控件。控件的代码直接进入表单。通常这很好,但是是否可以将 UI 控件(如面板)的代码编写到单独的文件中,然后可以将其导入或以其他方式包含到主窗体类中?
上下文(又名长版):我有一个表单,左侧有一列不变的导航按钮。表单的其余部分由不同的面板占据,这些面板又具有自己的不同控件。单击左侧的不同按钮应该会导致这些不同的面板出现(单击按钮“A”会调出面板“A”;按钮“B”会调出面板“B”等),但左侧菜单应保留不变。
我很难在 VB.Net 中以优雅的方式实现此设计。如果我让每个面板成为一个单独的表单,我必须复制在每个文件中构建不变的左侧菜单的代码,这很糟糕。我尝试使用继承的表单,这样单独的面板将从主表单继承左侧菜单,但这意味着每次单击菜单都会在新窗口中生成新表单,虽然左侧菜单是继承的,但菜单我点击的那个和新窗口中外观相同的菜单在内存中不是同一个对象,彼此不认识。
我只想要一个具有中心内容的窗口,该窗口会根据您在左侧单击的内容而变化。解决这个问题的方法是让面板就是这样 - 面板 - 而不是像我目前正在做的那样单独的表格。但这在组织上会变得混乱,因为所有面板的代码都必须在一个庞大的主文件中。因此,我的问题的简短形式(见上文):如何在单独的文件中编写面板,然后将其放入主表单的折叠中?
【问题讨论】:
标签: vb.net forms file controls panels