【发布时间】:2010-05-31 12:22:22
【问题描述】:
我的应用程序具有以下 UI 配置:
主窗体是一个 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 已明确解释的内容。谢谢! =)