我如何将其转换为最小化所有子形式的类?当我尝试将它转移到课堂时,我得到了错误:
找不到类型或命名空间名称“MdiChildren”(您是否缺少using指令或程序集引用?)
public void minimizeAll()
{
foreach (Form childForm in MdiChildren)
{
childForm.WindowState = FormWindowState.Minimized;
}
}
答案 0 :(得分:2)
由于您已将代码移至新类,因此以前链接到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;
}
}
}
答案 1 :(得分:2)
MdiChildren
不是静态属性,您需要使用表单的实例。您可以将表单作为参数传递。
public void minimizeAll(Form parentForm)
{
foreach (Form childForm in parentForm.MdiChildren)
{
childForm.WindowState = FormWindowState.Minimized;
}
}
答案 2 :(得分:2)
您可以尝试使用类似的东西(几乎没有许多 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();
答案 3 :(得分:0)
您需要做的是使用其他指令在顶部添加using MdiChildren;
,并添加MdiChildren
命名空间作为参考。
要在Visual Studio中添加引用,请右键单击项目名称,在应用程序右侧的项目浏览器中,然后向下滚动弹出菜单,直到找到“添加引用”。从这里选择要在项目中引用的命名空间,然后单击“确定”。
从此处ForEach
只需输入之前有MdiChildren
的类路径。像MdiChildren.TheClass