我正在构建一个小的选项卡式c#表单,我希望每个选项卡页都具有一些常见功能,特别是一个OK按钮和一个错误消息,并为特定的空间表单域。在C#中创建一个自定义的TabPage控件
有没有其他人做过类似的事情,你是如何接近它的?
我正在构建一个小的选项卡式c#表单,我希望每个选项卡页都具有一些常见功能,特别是一个OK按钮和一个错误消息,并为特定的空间表单域。在C#中创建一个自定义的TabPage控件
有没有其他人做过类似的事情,你是如何接近它的?
这很容易做到而不扩展TabControl/TabPage。
定义一个UserControl,并在每个TabPage上放置所需的常用元素。
在窗体上:继续并为每个TabPage设计TabPage特定的控件:确保一旦UserControl添加完成后,它们不会与公共控件重叠。
在主窗体的窗体的Load事件做这样的事情:
// 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是不是真的在这里需要的是‘保险’,你的用户控件与”好吧按钮,用于错误消息的TextBox放置在您分配给每个TabPage的单个控件后面。
那些倒票的人:理解为什么不喜欢这个解决方案将非常感激。谢谢, – BillW 2010-03-25 14:41:31
@ BillW其实,一些屁股标记为垃圾邮件。现在,我不知道这是一个好的答案,但我知道它不是垃圾邮件。所以,+1可以帮助弥补代表损失并中和你的答案等级。 – 2010-03-25 18:45:10
嗨BillW, 我喜欢这个解决方案。我知道这意味着我失去了“看到”控制的设计师支持,但我认为它很好地完成了这项工作,谢谢。 – 2010-03-25 23:45:55
几个思路:
每个页面上的确定按钮? – 2010-03-24 15:30:58
不正确的答案,但我想我会做一些测试,扩大原来的tabcontrolpage,添加您需要的常见功能 – michele 2010-03-24 15:32:47