我将如何将其转换为最小化所有子窗体的类?当我尝试将其转移到课堂上时,出现错误:
找不到类型或命名空间名称“MdiChildren”(您是否缺少 using 指令或程序集引用?)
public void minimizeAll()
{
foreach (Form childForm in MdiChildren)
{
childForm.WindowState = FormWindowState.Minimized;
}
}
由于您已将代码移至新类,因此先前链接到您的对象this.
的属性的隐式引用不再可用,您需要在新类中传递并接受该对象,如下所示:MDIChildren
Windows
Form
Form
public class NewClass
{
public void minimizeAll(System.Windows.Forms.Form yourForm)
{
if(yourForm == null) throw new InvalidArgumentException();
foreach (Form childForm in yourForm.MdiChildren)
{
childForm.WindowState = FormWindowState.Minimized;
}
}
}
MdiChildren
不是静态属性,需要使用表单的实例。您可以将表单作为参数传递。
public void minimizeAll(Form parentForm)
{
foreach (Form childForm in parentForm.MdiChildren)
{
childForm.WindowState = FormWindowState.Minimized;
}
}
您可以尝试使用这样的东西(几乎没有很多MDI 父表单):
public static class Minimizer {
public static void MinimizeMdiChildren() {
// Enumerate all forms, minimize MDI Children
foreach (Form form in Application.OpenForms)
if (form.IsMdiChild)
form.WindowState = FormWindowState.Minimized;
}
}
...
Minimizer.MinimizeMdiChildren();
您需要做的是using MdiChildren;
在顶部添加其他 using 指令,并将MdiChildren
命名空间添加为引用。
要在 Visual Studio 中添加引用,请在应用程序右侧的项目资源管理器中右键单击项目名称,然后向下滚动弹出菜单,直到到达添加引用。从这里选择要在项目中引用的命名空间,然后单击确定。
从这里ForEach
只需键入您MdiChildren
之前的类路径即可。就像是MdiChildren.TheClass