2012-02-23 38 views
1

我正在使用Windows窗体应用程序,它需要很多控件(我的意思是很多)。使用选项卡控件来组织它们(有时嵌套选项卡控件)。加载大量控件的沉重用户界面的最佳方式

我正在阅读如何更快地加载应用程序和很多人说,如果真的需要控件三思。说实话,我认为可以减少使用的控件的数量,但客户以这种方式请求它,所以我几乎没有办法做到这一点。

我在读我应该使用多线程策略,但有一个硬​​件限制:应用程序必须在平均neetbook上运行。这真的很痛苦,因为我在加载时间方面受到了限制,并且我可以使用多少空间来放置控件。

我想知道如果我可以在窗体显示之前加载一个或两个标签,然后加载其他标签,那可能/正确/有效吗?如果是这样,我怎么能实现它?我也计划使用MDI子元素,但是我需要在某些时候检索所有控件中的所有信息(绝对来自所有的选项卡和嵌套选项卡)。

你能给我一些提示吗?你有任何类似的工作经验吗?

回答

2

一种策略是创建您的主页,其中TabControl为空TabPages。 然后你可以设计几个辅助形式(一个为需要的每个TabPage),每个包含单个Panel控制与Public能见度(小组Modifiers属性更改为Public)持有,你会放置在TabPage真正的UI元素。

当用户点击空的TabPage时,您创建辅助窗体(您不显示它,只是创建它),然后访问辅助窗体中的Panel控件,然后您可以将它重新设置为你的空标签页,这样

AuxForm1 frm = new AuxForm1(); 
frm.MainPanel.Parent = this.tabControl1.TabPages[0]; 

这将耽误的TabPage的控制创造直到面板被用户:) 希望这有助于点击!

1

我在想,如果我可以加载一个或两个选项卡显示在表格前,然后装入他人

你可以让每一个“标签”包含用户控件,并加载用户控件需求,当标签被激活。这至少会阻止你在启动时初始化所有的东西。

1

“很多控件”并不是任何人都可以回答的要求。一个包含数千万行的下拉列表是一个非常不同的问题,它具有数千个步骤并需要不同答案的向导用户界面。

为什么客户“要求这样”?我们需要知道实际的交付要求来回答你的问题。你有没有向他们展示替代品

首先,发布一些你的模型。如果您还没有实体模型,请制作一些模型并使用它们进行纸张测试,然后发布它们。

谁是“很多人”?测试人员吗?顾客?匿名论坛海报?将您的模型发布到https://ux.stackexchange.com/并征求意见。

“我可以在窗体显示之前加载一个或两个标签”?当然,你可以这样做,但是为什么在你向我们展示任何需求之前,你预先假设你的用户界面将是“一个或两个标签”?获取需求,制作模型,然后询问具体的可回答的问题。