我正在构建一个小标签c#表单,我希望每个标签页都有一些常用功能,特别是OK按钮和错误消息,并为特定表单字段留出空间。
有没有其他人做过类似的事情,你是如何做到的?
答案 0 :(得分:7)
如果不扩展TabControl / TabPage,这很容易做到。
定义一个UserControl,并在每个TabPage上放置所需的公共元素。
在表单上:继续为每个TabPage设计所需的TabPage特定控件:确保在添加UserControl后它们不会与公共控件在视觉上重叠。
在主表单的表单加载事件中执行以下操作:
// form scoped variable to hold a referece to the current UserControl
private UserControl1 currentUserControl;
private void Form1_Load(object sender, EventArgs e)
{
foreach(TabPage theTabPage in tabControl1.TabPages)
{
currentUserControl = new UserControl1();
theTabPage.Margin = new Padding(0);
theTabPage.Padding = new Padding(0);
theTabPage.Controls.Add(currentUserControl);
currentUserControl.Location = new Point(0,0);
currentUserControl.Dock = DockStyle.Fill;
currentUserControl.SendToBack();
}
}
即使这里并不真正需要'SendToBack,但是你的UserControl带有'Okay按钮和TextBox的错误信息“放在你分配给每个TabPage的各个控件后面是”保险“。
答案 1 :(得分:2)
几个想法: