将用户控制面板操作为 Windows 来自的推荐方法

Recommended way to manipulate User Control panels into a Windows From

我刚开始使用 Visual Studio C#,老实说,我并不完全理解当我们选择隐藏窗体或用户控件时会发生什么。

我的直觉告诉我,这种 hide/show 方法是一种 "inefficient" 让用户使用我的应用程序的所有功能的方法。

所以我问你们是否有另一种解决方法 "load" 表单中的用户控制部分。

现在,我的 main_menu 表单已将所有用户控件对象放置在表单上,​​但处于隐藏状态,我正在使用按钮来显示它们。

有没有更好的方法达到同样的效果? (我在想一个解决方法,比如有一个空面板,我可以在其中加载用户控件 - 不确定是否可能)

谢谢!

您可以即时创建控件并将它们添加到 Controls 集合中或从中删除它们。在class层,定义这个字段

private Control _currentPanel;

如果您的所有面板都来自一个通用的基本类型,您可以在此处使用更具体的类型。

然后用

改变面板
// Remove previous one.
if (_currentPanel != null) {
    Controls.Remove(_currentPanel);
}

// Add new one
_currentPanel = new MyNewPanel();
 //TODO: possibly set the panels Docking property to Fill here.
Controls.Add(_currentPanel);

在示例中,我使用表单的 Controls 集合;但是,您可能必须使用某些包含面板的容器控件的 Controls 集合。