【发布时间】:2011-08-24 21:57:38
【问题描述】:
目前我在启动时禁用了大部分表单控件,因为在加载文件之前您无法使用它们。但是,一旦加载了文件,控件就会启用。
我正在使用绑定,但我认为它们不是一个好的解决方案。一方面,这是不必要的复杂性。其次,您不能对所有内容都使用绑定。例如,MenuStrip 项不能将其 Enabled 属性绑定到 fileLoaded 属性。只有整个菜单可以而且我不想在启动时禁用整个菜单,只有对文件进行操作的某些菜单操作。
我真的只是在寻找一种启用一切的方法。大多数人在被问到时会这样回答:
foreach (Control c in Controls)
{
c.Enabled = true;
}
但是,这不适用于在其他控件(如面板或自定义控件)中启用 MenuStrip 项或控件。因此它不会在容器中启用滚动条。
我想我可以使用该行并手动启用其他所有功能,但我总是可以手动启用所有功能。我正在寻找一种自动启用一切的方法。
【问题讨论】:
-
最初是如何禁用这些元素的?也许您可以跟踪列表中禁用的内容,然后重新启用该列表中的所有元素(并清除它)。
-
它们在表单设计器中被禁用。大多数应用程序的工具在没有加载文件的情况下无法使用,因此默认情况下它们被禁用。