WinForm窗体显示和传值详解

需积分: 3 2 下载量 167 浏览量 更新于2024-09-17 收藏 32KB DOC 举报
WinForm开发,窗体显示和窗体传值相关知识总结 在 WinForm 开发中,窗体显示和窗体传值是两个非常重要的概念。本文将对这两个概念进行详细的总结和剖析。 **A. WinForm 中窗体显示** 在 WinForm 中,窗体显示可以有两种方法:Form.ShowDialog 方法(窗体显示为模式窗体)和 Form.Show 方法(窗体显示为无模式窗体)。这两种方法的区别在于: 1. 在调用 Form.Show 方法后,Show 方法后面的代码会立即执行。 2. 在调用 Form.ShowDialog 方法后,直到关闭对话框后,才执行此方法后面的代码。 3. 当窗体显示为模式窗体时,单击“关闭”按钮会隐藏窗体,并将 DialogResult 属性设置为 DialogResult.Cancel 与无模式窗体不同,当用户单击对话框的关闭窗体按钮或设置 DialogResult 属性的值时,不调用窗体的 Close 方法,实际上是把窗体的 Visible 属性赋值为 false,隐藏窗体了。 判断一个窗体是模式窗体可以通过 Form.Modal 属性,如果该窗体是模式显示,则为 true,否则为 false。根据通过 Show 和 ShowDialog 而显示出来的窗体的 Modal 属性分别对应 false 和 true。 特别注意,在窗体创建之前是无法得知显示方式的,所以在窗体构造函数中,Modal 属性总是对应 false,所以我们只能在 Load 事件中或者之后利用 Modal 属性值。 **B. 窗体所有者关系** Form 类的 Owner 属性可以确定窗体间的所有者关系。当一个窗体归另一窗体所有时,它便随着所有者窗体最小化和关闭。例如,如果 Form2 归窗体 Form1 所有,则关闭或最小化 Form1 时,Form2 也会关闭或最小化。 例如,在窗体 Form1 中: Form2 f2 = new Form2(); f2.ShowDialog(this); // 或者 f2.Show(this); // 或者 f2.Owner = this; f2.ShowDialog(); 这样 f2 的所有者就是 Form1。 **C. 窗体传值** 了解了窗体的显示相关知识,接着总结一下窗体的传值方法: 1. 通过构造函数 特点:传值是单向的(不可以互相传值),实现简单。 实现代码如下: 在窗体 Form2 中: int value1; string value2; public Form2(int value, string str) { value1 = value; value2 = str; } Form1 中: Form2 f2 = new Form2(10, "Hello"); f2.ShowDialog(); 在上面的代码中,我们可以通过构造函数传递参数给 Form2,从而实现窗体传值。 本文总结了 WinForm 开发中窗体显示和窗体传值的相关知识,希望可以为读者提供有用的参考。