我的应用程序具有以下UI配置:当可见性改变时,mdi儿童形式绘制缓慢
主窗体是一个MDI容器。其子表格附在TabStrip
。
每个用户都有他的一组子表单。根据活动用户的不同,仅显示该用户的子表单以及选项卡。
这是通过检查主窗体的MdiChildren
并将它们的Visible
属性设置为false/true
,具体取决于活动用户。
foreach (Form item in MdiChildren)
{
if (((OfficeFormEx)item).UserID == (int)e.NewTab.Tag)
{
item.Visible = true;
}
else
{
item.Visible = false;
}
}
这有两个不良影响。一个是每个孩子的形式都是连续重绘,这是丑陋而缓慢的。另一个原因是由于某种原因,形式从最大化到正常,有效地将它们从主要形式中分离出来。
是否有任何方法只显示其中一个子窗体,比如用户以前正在查看的窗体,并让其他人留在后台?最大化/正常的事情并不是什么大事,因为我可以再次手动使其最大化。
+1你的问题是为了学习@Hans Passant已经明确解释的东西而进行的。谢谢! =) – 2010-06-01 12:34:00