2013-03-21 30 views
1

我使用带有多个标签(> 10)的tabControl,每个标签都有UserContol。但标签在启动我的应用程序时初始化每个控件。这让我的节目太慢了。我只想在点击它时运行我的用户控件。我怎样才能做到这一点?tabcontrol中标签的初始化

+1

我编辑了你的标题。请参阅:“[应该在其标题中包含”标签“](http://meta.stackexchange.com/questions/19190/)”,其中的共识是“不,他们不应该”。 – 2013-03-21 09:12:34

回答

1

你应该改进你的用户控件,他们不做性能的东西,直到他们被激活/可见。为他们提供一种方法Activate,当制表符变为选定选项卡时,tabcontrol将调用这个方法。

或者,您无法将UserControls添加到设计器中的TabPage内容。当选项卡变为活动状态时,请创建您的UserControl。但是这会让他们在设计师中变得不可思议。

0

你可以有一个标记,如IsLoaded,直到选中一个标签,不加载控件。然后选择选项卡时,如果尚未加载选项卡,则可以加载控件并在运行时将它们添加到标签Controls

或者,您可以添加控件,但不会对它们执行任何操作,直到选中选项卡,然后每个选项卡将执行计算或任何操作并更新正确的控件。

这都是关于你的设计。

0

为您的UserControl的Load事件添加处理程序。然后在处理程序中启动缓慢的活动。