为了避免将所有的控件堆在 MainForm上,导致整个视图和逻辑特别复杂,可以使用UserControl将相关的控件组合起来,独立成一个个小的视图。
比如主窗口中有多个Tab选项卡,可以将每个Tab选项卡的视图独立成一个UserControl,通过手动添加或者拖放添加到Form中。下面以PrintPanel为例说明用法(VS2015)。
- 首先,“添加——>新建项——>Visual C#项——>用户控件”,按照原来Tab中的样式设计;
// 与Form的设计类似,只是继承自UserControl
namespace Demo.Views
{
public partial class PrintPanel : UserControl
{
public PrintPanel()
{
InitializeComponent();
}
......
}
}
- 手动添加: 将PrintPanel添加到MainForm的tab1中。
namespace Demo
{
public partial class Main : Form
{
private PrintPanel printPanel;
public Main()
{
......
printPanel = new PrintPanel();
printPanel.Dock = DockStyle.Fill;
tab1.Controls.Add(printPanel);
......
}
}
}
- 拖放添加: 对于一些小的自定义控件,如果需要显示在“工具箱”中,像其他控件一样拖放设计,可以修改系统设置显示自定义控件。
工具——> 选项——> Windows窗体设计器——> 常规——> AutoToolBoxPopulate(自动填充工具箱)——> True