如何将控件添加到动态创建的新标签页中?

时间:2014-02-06 07:41:40

标签: c# winforms user-interface datagridview tabcontrol

我正在使用C#开发一个Windows窗体应用程序,它有一个带有动态创建的标签页的标签控件。我想将ComboSet Item 1中的相同布局和控件(ComboBoxes,TextBoxes,Buttons& DataGridView)添加到新创建的标签页(在本例中为ComboSet Item 2)。我该怎么做以及如何命名控件?

enter image description here

将从1,2,3... n生成新标签页。因此,在新标签下也会添加'n'个DataGridViews。有没有办法绑定这些DataGridViews,是否可以这样做?

非常感谢任何帮助!

3 个答案:

答案 0 :(得分:2)

创建新的用户控件 - >将所有控件放入用户控件 - >创建所有控件的属性。那么你只需要管理你的用户控件。

void AddTab()
{
    TabPage tbp = new TabPage();
    tbp.Name=TabControl1.TabPages.Count.ToString();
    MyUserControl cnt = new MyUserControl();
    cnt.Name="Cnt" + tbp.Name;
    cnt.Dock=DockStyle.Fill;
    tbp.Controls.Add(cnt);
}

如果无法将代码放入用户控件,则可以为每个控件创建事件。例如,ProductName组合框的ProductName_SelectedValueChange,验证折扣值并将其处理为AddTab()方法。

答案 1 :(得分:0)

TabPages是像Panel这样的普通容器。 您可以使用tabpage.controls.add()方法添加一些新项目。如果要命名项目,请使用myitem.Name = "Test"属性。 如果你想要在更多页面上修复一组项目,你应该为它创建一个Usercontrol。

答案 2 :(得分:0)

由于您想要向标签页添加更多控件,我建议在tabe页面中为内容创建一个自己的UserControl。

根据需要安排UserControl中的控件(DockStyle,Anchor ...)。

创建新标签时,只需创建一个新的UserControl并将其添加到Sebi所提到的标签页中。另外,您应该将DockStyle设置为Fill。这应该是诀窍。