Visual Basic .NET 消息框与对话框开发指南
1. 消息框的创建与使用
在开发过程中,消息框是一个常用的工具。创建并显示消息框可以使用
MessageBox
类的
Show
方法。要确定用户在消息框中点击了哪个按钮,可以使用
Show
方法的返回值。
2. 消息框与对话框的区别
消息框虽然是一个很有价值的工具,但它有一定的局限性,只能包含文本、按钮、图标和标题。当需要从用户那里获取的信息比较复杂时,消息框就显得不够用了。这时可以创建一个自定义的、更复杂的对话框。以下是消息框和对话框的基本区别:
| 类型 | 特点 |
| ---- | ---- |
| 消息框 | 内置在 Visual Basic 中,功能相对简单,仅包含文本、按钮、图标和标题 |
| 对话框 | 由程序员创建,可以添加额外的控件,如文本框等 |
3. 创建对话框的步骤
下面通过一个具体的项目来介绍如何创建一个对话框,该对话框可以让用户更改调用窗体的标题。
1.
创建 Windows 应用程序
:启动开发环境,创建一个新的 Windows 应用程序项目。
2.
设置窗体的起始位置
:使用属性窗口,将窗体的
StartPosition
属性从默认的
WindowsDefaultLocation
更改为
CenterScreen
,使窗体在屏幕上居中显示。
FormStartPosition
枚举的成员及描述如下表所示:
| 成员名称 | 描述 |
| ---- | ---- |
| CenterParent | 窗体在其父窗体的边界内居中 |
| CenterScreen | 窗体在当前显示器上居中,并具有窗体大小指定的尺寸 |
| Manual | 窗体的位置和大小决定其起始位置 |
| WindowsDefaultBounds | 窗体位于 Windows 默认位置,并具有由 Windows 默认值确定的边界 |
| WindowsDefaultLocation | 窗体位于 Windows 默认位置,并具有窗体大小指定的尺寸 |
3.
添加按钮到窗体
:从工具箱中拖动一个按钮到窗体上。
4.
更改按钮的属性
:使用属性窗口更改按钮的以下属性:
-
Name
:从
Button1
更改为
btnNewCaption
。
-
Text
:从
Button1
更改为
New Caption
。
5.
添加第二个窗体作为对话框
:使用
Project | Add Windows Form
菜单命令,在弹出的
Add New Item
对话框中,可以保留新窗体的默认名称
form2.vb
,然后点击
Open
按钮。
6.
设置第二个窗体的属性
:使用属性窗口更改
Form2
的以下属性:
-
Text
:从
Form2
更改为
Dialog
,以便有一个视觉提示,表明这是一个对话框。
-
ControlBox
:从默认的
True
更改为
False
,这样可以消除窗口右上角的关闭、最小化和最大化按钮,以及左上角的系统菜单。
-
StartPosition
:从默认的
WindowsDefaultLocation
更改为
CenterParent
,使对话框在主窗体上居中。
-
FormBorderStyle
:从默认的
Sizable
更改为
FixedDialog
,使窗体更像一个对话框。
FormBorderStyle
枚举的成员及描述如下表所示:
| 成员名称 | 描述 |
| ---- | ---- |
| Fixed3D | 固定的三维边框 |
| FixedDialog | 粗的、固定的对话框样式边框 |
| FixedSingle | 固定的单线条边框 |
| FixedToolWindow | 不可调整大小的工具窗口边框 |
| None | 无边框 |
| Sizable | 可调整大小的边框 |
| SizableToolWindow | 可调整大小的工具窗口边框 |
7.
添加按钮到第二个窗体
:从工具箱中拖动一个按钮到第二个窗体上。
8.
更改按钮的属性
:使用属性窗口更改按钮的以下属性:
-
Name
:从
Button1
更改为
btnOK
。
-
Text
:更改为
OK
。
-
DialogResult
:从下拉列表中选择
OK
。
9.
添加第二个按钮到第二个窗体
:再次从工具箱中拖动一个按钮到第二个窗体上。
10.
更改第二个按钮的属性
:使用属性窗口更改按钮的以下属性:
-
Name
:从
Button1
更改为
btnCancel
。
-
Text
:更改为
Cancel
。
-
DialogResult
:从下拉列表中选择
Cancel
。
11.
设置第二个窗体的接受和取消按钮
:使用属性窗口,通过下拉列表更改第二个窗体的以下属性:
-
AcceptButton
:选择
btnOK
。
-
CancelButton
:选择
btnCancel
。
12.
添加文本框到第二个窗体
:从工具箱中拖动一个文本框到第二个窗体上。
13.
更改文本框的属性
:使用属性窗口更改文本框的以下属性:
-
Name
:更改为
txtNewCaption
。
-
Text
:删除默认文本,使其为空。
14.
添加代码到第二个窗体
:在第二个窗体的
#End Region
语句后添加以下代码:
Public Property Caption() As String
Get
Caption = txtNewCaption.Text
End Get
Set(ByVal Value As String)
End Set
End Property
-
添加代码到第一个窗体的按钮点击事件
:在第一个窗体的
btnNewCaption按钮的Click事件中添加以下代码:
Private Sub btnNewCaption_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNewCaption.Click
Dim frmCaption As New Form2()
frmCaption.ShowDialog()
If frmCaption.DialogResult = DialogResult.OK Then
Me.Text = frmCaption.Caption
End If
End Sub
4. 运行项目
运行项目后,点击第一个窗体上的
New Caption
按钮,在第二个窗体中输入一些文本。如果点击
OK
,第二个窗体将关闭,第一个窗体的标题将更改为在第二个窗体中输入的文本;如果点击
Cancel
,第二个窗体也会关闭,但第一个窗体的标题不会改变。
5.
ShowDialog
方法
Form
对象的
ShowDialog
方法与
MessageBox
类的
Show
方法类似,都会显示调用该方法的窗体。但有几个重要的区别:
-
MessageBox
类的
Show
方法显示的是内置窗体,而
Form
对象的
ShowDialog
方法显示的是你创建的窗体,如
Form2
。因此,在使用
ShowDialog
方法显示
Form2
之前,需要显式声明并创建
Form2
的实例:
Dim frmCaption As New Form2()
frmCaption.ShowDialog()
-
第二个窗体和消息框一样是模态的,即用户在点击第二个窗体的某个按钮关闭它之前,不能返回到主窗体。
MessageBox类的Show方法通过返回DialogResult值来指示用户点击的按钮,而Form对象的ShowDialog方法通过将该值分配给对话框窗体的DialogResult属性来指示用户点击的按钮。以下是判断用户点击OK按钮的代码示例:
If frmCaption.DialogResult = DialogResult.OK Then
' 执行相应操作
End If
6. 公共、私有和作用域
在尝试更改第一个窗体的标题为第二个窗体中输入的文本时,直接使用
Me.Text = frmCaption.txtNewCaption.Text
会出现问题,因为
txtNewCaption
是私有的,在当前上下文中无法访问。在编程中,
Private
和
Public
关键字用于控制对象、变量或过程的访问权限:
- 如果一个对象、变量或过程被声明为
Private
,则只能在包含它的窗体的代码模块中访问。
- 如果一个对象、变量或过程被声明为
Public
,则可以在包含它的窗体的代码模块之外访问。
为了解决跨窗体访问属性的问题,可以使用属性过程。
7. 属性过程
属性过程是一种特殊的过程,用于访问和修改对象的属性。它与事件过程有两个显著的区别:
- 事件过程由事件的发生调用,通常由应用程序用户的操作触发;而属性过程由代码显式调用。
- 事件过程中的代码可以执行程序员认为合适的任何操作;而属性过程中的代码有两个专门的目的,即更改或返回属性的值。
属性过程的基本结构如下:
Public Property Caption() As String
Get
' 返回属性值的代码
End Get
Set(ByVal Value As String)
' 分配属性值的代码
End Set
End Property
在这个例子中,只实现了
Get
过程,使
txtNewCaption
的
Text
属性在
Form2
外部为只读属性。以下是
Get
过程的具体代码:
Get
Caption = txtNewCaption.Text
End Get
在
btnNewCaption
事件过程中,可以通过以下代码将
Form2
中
txtNewCaption
的文本值分配给
Form1
的标题:
Me.Text = frmCaption.Caption
需要注意的是,调用属性过程时要使用对象的实例,而不是类名。例如,使用
frmCaption.Caption
而不是
Form2.Caption
,否则编译器会报错。
综上所述,通过以上步骤和方法,可以在 Visual Basic .NET 中创建和使用消息框、对话框,并实现跨窗体访问属性的功能。在实际开发中,合理运用这些技术可以提高程序的交互性和用户体验。
Visual Basic .NET 消息框与对话框开发指南
8. 常见问题解答
8.1 消息框与对话框的基本区别
消息框是 Visual Basic 内置的,功能相对简单,只能包含文本、按钮、图标和标题;而对话框是由程序员创建的,可以添加额外的控件,如文本框等,适用于需要获取更复杂信息的场景。
8.2 创建和显示对话框的方法
创建对话框的步骤如下:
1. 创建一个新的 Windows 窗体。
2. 设置窗体的属性,如起始位置、边框样式等。
3. 添加所需的控件,如按钮、文本框等。
4. 设置控件的属性,如名称、文本、对话框结果等。
5. 添加代码来处理控件的事件和实现所需的功能。
显示对话框可以使用
ShowDialog
方法,示例代码如下:
Dim frmCaption As New Form2()
frmCaption.ShowDialog()
8.3 确定用户在对话框中点击的按钮
可以使用对话框窗体的
DialogResult
属性来确定用户点击的按钮。示例代码如下:
If frmCaption.DialogResult = DialogResult.OK Then
' 用户点击了 OK 按钮
ElseIf frmCaption.DialogResult = DialogResult.Cancel Then
' 用户点击了 Cancel 按钮
End If
9. 总结与建议
9.1 总结
本文详细介绍了 Visual Basic .NET 中消息框和对话框的使用方法,包括消息框的创建和显示、对话框的创建步骤、
ShowDialog
方法的使用、公共和私有作用域的概念以及属性过程的应用。通过这些技术,可以实现更复杂的用户交互和数据输入功能。
9.2 建议
- 在开发过程中,根据实际需求选择合适的消息框或对话框。如果只需要简单的提示信息,可以使用消息框;如果需要获取更复杂的信息,可以创建自定义对话框。
- 合理使用公共和私有作用域,遵循封装的原则,将数据验证逻辑放在属性过程中,以确保数据的有效性。
- 在编写代码时,注意代码的可读性和可维护性,使用有意义的变量名和方法名,并添加必要的注释。
10. 流程图示例
graph TD;
A[开始] --> B[创建 Windows 应用程序];
B --> C[设置主窗体属性];
C --> D[添加按钮到主窗体];
D --> E[设置按钮属性];
E --> F[添加第二个窗体作为对话框];
F --> G[设置对话框属性];
G --> H[添加按钮到对话框];
H --> I[设置按钮属性];
I --> J[添加文本框到对话框];
J --> K[设置文本框属性];
K --> L[添加属性过程代码];
L --> M[添加按钮点击事件代码];
M --> N[运行项目];
N --> O{点击 OK 按钮?};
O -- 是 --> P[更改主窗体标题];
O -- 否 --> Q[不更改主窗体标题];
P --> R[结束];
Q --> R[结束];
11. 表格总结
| 项目 | 描述 |
|---|---|
| 消息框 |
内置在 Visual Basic 中,用于显示简单的提示信息,通过
MessageBox.Show
方法显示
|
| 对话框 |
由程序员创建,可添加额外控件,通过
ShowDialog
方法显示
|
ShowDialog
方法
| 显示自定义窗体,显示前需创建窗体实例 |
| 公共和私有作用域 |
Public
可在不同窗体访问,
Private
只能在包含它的窗体代码模块中访问
|
| 属性过程 |
用于跨窗体访问属性,可包含
Get
和
Set
过程
|
通过以上的内容,你可以全面了解 Visual Basic .NET 中消息框和对话框的开发方法,并在实际项目中灵活运用。希望这些知识对你有所帮助,祝你在编程的道路上取得更好的成果!
超级会员免费看
14

被折叠的 条评论
为什么被折叠?



