C# 向选项卡页运行时添加控件

C# 向选项卡页运行时添加控件,c#,winforms,user-controls,controls,tabpage,C#,Winforms,User Controls,Controls,Tabpage,我使用的是C#和winForms,我有一些tabcontrols,其中包含一些tab页面, 我想添加所有标签页我的用户控制,这将是最好的,如果我可以添加后,用户点击标签页。它只对我有效,当我在构造函数中添加这个控件时——是什么导致了应用程序启动时的延迟——大约3秒,这非常重要 我想在运行时添加此控件,如 tabPage1.onClickEvent() { tabPage1.Controls.Add(myUserControl); } 但它不起作用,我也尝试使用Invalidate或Refres

我使用的是C#和winForms,我有一些tabcontrols,其中包含一些tab页面, 我想添加所有标签页我的用户控制,这将是最好的,如果我可以添加后,用户点击标签页。它只对我有效,当我在构造函数中添加这个控件时——是什么导致了应用程序启动时的延迟——大约3秒,这非常重要

我想在运行时添加此控件,如

tabPage1.onClickEvent()
{
tabPage1.Controls.Add(myUserControl);
}
但它不起作用,我也尝试使用Invalidate或Refresh方法,但它不起作用

那么有没有可能在构造函数之外的方法中添加这个userControls呢? 也许它的问题是,我在TabControl中有TabControl,我必须通过父TabControl添加这个控件?
谢谢

尝试双击设计器中的标记页,或者可以手动添加事件处理程序,如下所示:

tabPage1.Click += new EventHandler(tagPage1_Click);
我不知道tabPage1是否是动态的,但如果不是,则应将上述事件处理程序添加到designer.cs文件中

以下是代码中的事件处理程序:

protected void tabPage1_Click(object sender, EventArgs e)
{
    tagPage1.Controls.Add(new TextBox());
}

我遇到了一个类似的问题,通过在TabControl中添加/删除tab页解决了这个问题。也许这种方法更适合你。总的来说,我认为3秒钟的启动时间差不多。您确定这是由于向组件添加控件造成的吗?你能详细谈谈你想要达到的目标吗?如果用户控件在那里,只需切换
Visible
属性就更好了。你说tabcontrol中有tabcontrol是什么意思?你不应该有一个带有tabpages的tabcontrol吗?这个延迟可能是因为我有28个tab页面,每个页面都由userControl组成,它由2-3个userControl组成,我有一个主tabcontrol,它由两个tabpages组成,这个tabpages由另一个tabcontrol组成,它由tabpages组成,我想在其中添加控件这听起来像是一个疯狂的UI设计,会让用户感到困惑。也就是说,@yas4891创建visible属性并将其设置为false,直到您需要向用户显示它为止,这是一个很好的方法(除非您根据其他逻辑加载一组不同的28个选项卡)。