2

我正在使用带有许多选项卡(> 10)的 tabControl,每个选项卡都有 UserContol。但是选项卡在启动我的应用程序时初始化每个控件。这让我的程序太慢了。我只想在单击它时运行我的 userControl。我怎样才能做到这一点?

4

3 回答 3

2

您应该改进您的用户控件,使其在被激活/可见之前不会执行性能操作。Give them a method Activatewhich the tabcontrol calls when the tabs becomes the selected tab.

或者,您不能将 UserControls 添加到设计器中的 TabPage 内容。而是在选项卡变为活动状态时创建您的 UserControl。但这会使它们在 Designer 中不可见。

于 2013-03-21T09:14:42.007 回答
0

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

或者,您可以添加控件但在选择选项卡之前不对它们执行任何操作,然后每个选项卡将执行计算或其他任何操作并更新正确的控件。

这完全取决于您的设计。

于 2013-03-21T09:16:32.747 回答
0

将处理程序添加到您的用户控件的Load事件。然后在处理程序中启动缓慢的活动。

于 2013-09-03T17:37:07.660 回答