类以最小化所有形式
本文关键字:最小化 | 更新日期: 2023-09-27 18:29:41
如何将其转换为最小化所有子窗体的类?当我试图把它转移到课堂上时,我出现了错误:
未能找到类型或命名空间名称"MdiChildren"(是否缺少using指令或程序集引用?)
public void minimizeAll()
{
foreach (Form childForm in MdiChildren)
{
childForm.WindowState = FormWindowState.Minimized;
}
}
MdiChildren
不是静态属性,您需要使用表单的实例。您可以传入form作为参数。
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();
因为您已经将代码移动到新的类,以前链接到Windows
Form
对象的MDIChildren
属性中的隐式this.
引用不再可用,您需要在新类中传递并接受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;
}
}
}
您要做的是通过其他using指令在顶部添加using MdiChildren;
,并添加MdiChildren
命名空间作为引用。
要在Visual Studio中添加引用,请在应用程序右侧的项目资源管理器中右键单击项目名称,然后向下滚动弹出菜单,直到到达添加引用。从这里你可以选择你想要在项目中引用的名称空间,然后点击ok
从这里开始,在ForEach
中只需键入以前有MdiChildren
的类路径。类似MdiChildren.TheClass
的东西