本文主要介绍了Windows窗体编程中的公共变量概念以及与之相关的基础操作。在Windows应用程序中,特别是C#或VB.NET环境下,公共变量是一种重要的设计模式,用于在多个窗体之间共享数据和对象实例。在给定的示例中,`public static AddBookForm frm = null;` 是一个典型的公共静态变量,它被用来在`BookManagementSysForm`窗体中打开一个新的`AddBookForm`实例。
1. **公共变量的应用**:
公共变量通常用于避免在每个打开的窗体实例中重复创建对象,节省内存和提高效率。在`BookManagementSysForm`中,通过`frm = new AddBookForm();`创建一个`AddBookForm`的实例,并将其赋值给公共变量`frm`,这样无论何时需要在MDI(Multiple Document Interface,多文档接口)环境中显示这个新窗体,都可以直接引用`frm`,如`frm.MdiParent = this;`。
2. **窗体属性与方法**:
窗体有众多属性,如`Font`用于改变窗体大小(而非字体大小)、`MaximizeBox`和`MinimizeBox`控制最大化和最小化按钮、`HelpButton`显示帮助按钮等。还有`Show()`和`Close()`方法用于显示和关闭窗体。`WindowState`属性定义了窗体运行时的状态,包括正常、最大化和最小化。
3. **窗体事件处理**:
`FormClosing`事件在关闭窗体前触发,而`FormClosed`事件在关闭后触发。这允许开发者在窗口关闭之前执行清理工作或者保存状态。
4. **父子窗体交互**:
父子窗体之间的通信是通过实例传递实现的,如`private Form1 myParent`声明父窗体实例,然后在构造函数中设置。子窗体可以通过`this.myParent`访问并操作父窗体的属性,例如`this.myParent.UpdateView(mySe)`。
5. **控件属性设置**:
控件的属性可以通过编程方式动态设置,如`public string Title { set {...} }`定义了`Title`属性的setter方法,允许外部调用窗体的`Title`属性并更新控件文本。
6. **控件跨窗体使用**:
为了使控件能够在多个窗体间共享,可以将它们的属性设置为`public`,这样其他窗体就可以通过引用修改这些属性。
本文围绕公共变量、窗体属性、事件处理和控件跨窗体使用展开,展示了Windows编程中窗体管理的基本原理和实践技巧,这对于理解和开发Windows应用程序至关重要。