爲了避免將所有的控件堆在 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