- VB.Net 基础教程
- VB.Net - 首页
- VB.Net - 概述
- VB.Net - 环境设置
- VB.Net - 程序结构
- VB.Net - 基本语法
- VB.Net - 数据类型
- VB.Net - 变量
- VB.Net - 常量
- VB.Net - 修饰符
- VB.Net - 语句
- VB.Net - 指令
- VB.Net - 运算符
- VB.Net - 决策制定
- VB.Net - 循环
- VB.Net - 字符串
- VB.Net - 日期和时间
- VB.Net - 数组
- VB.Net - 集合
- VB.Net - 函数
- VB.Net - 子程序
- VB.Net - 类和对象
- VB.Net - 异常处理
- VB.Net - 文件处理
- VB.Net - 基本控件
- VB.Net - 对话框
- VB.Net - 高级窗体
- VB.Net - 事件处理
- VB.Net 高级教程
- VB.Net - 正则表达式
- VB.Net - 数据库访问
- VB.Net - Excel表格
- VB.Net - 发送邮件
- VB.Net - XML处理
- VB.Net - Web编程
- VB.Net 有用资源
- VB.Net - 快速指南
- VB.Net - 有用资源
- VB.Net - 讨论
VB.Net - 高级窗体
本章我们将学习以下概念:
在应用程序中添加菜单和子菜单
在窗体中添加剪切、复制和粘贴功能
在窗体中固定和停靠控件
模式窗体
在应用程序中添加菜单和子菜单
传统上,Menu、MainMenu、ContextMenu 和 MenuItem 类用于在 Windows 应用程序中添加菜单、子菜单和上下文菜单。
现在,MenuStrip、ToolStripMenuItem、ToolStripDropDown 和 ToolStripDropDownMenu 控件取代了并增加了以前版本中与菜单相关的控件的功能。但是,为了向后兼容性和将来使用,旧的控件类仍然保留。
让我们首先使用旧版本的控件创建一个典型的 Windows 主菜单栏和子菜单,因为这些控件在旧应用程序中仍然被广泛使用。
以下是一个示例,它演示了如何创建一个带有菜单项的菜单栏:文件、编辑、视图和项目。文件菜单具有子菜单新建、打开和保存。
双击窗体,并将以下代码放入打开的窗口中。
Public Class Form1 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 'defining the main menu bar Dim mnuBar As New MainMenu() 'defining the menu items for the main menu bar Dim myMenuItemFile As New MenuItem("&File") Dim myMenuItemEdit As New MenuItem("&Edit") Dim myMenuItemView As New MenuItem("&View") Dim myMenuItemProject As New MenuItem("&Project") 'adding the menu items to the main menu bar mnuBar.MenuItems.Add(myMenuItemFile) mnuBar.MenuItems.Add(myMenuItemEdit) mnuBar.MenuItems.Add(myMenuItemView) mnuBar.MenuItems.Add(myMenuItemProject) ' defining some sub menus Dim myMenuItemNew As New MenuItem("&New") Dim myMenuItemOpen As New MenuItem("&Open") Dim myMenuItemSave As New MenuItem("&Save") 'add sub menus to the File menu myMenuItemFile.MenuItems.Add(myMenuItemNew) myMenuItemFile.MenuItems.Add(myMenuItemOpen) myMenuItemFile.MenuItems.Add(myMenuItemSave) 'add the main menu to the form Me.Menu = mnuBar ' Set the caption bar text of the form. Me.Text = "tutorialspoint.com" End Sub End Class
当使用 Microsoft Visual Studio 工具栏上的“启动”按钮执行和运行上述代码时,将显示以下窗口:
Windows 窗体包含一组丰富的类,用于创建具有现代外观和感觉的自定义菜单。MenuStrip、ToolStripMenuItem、ContextMenuStrip 控件用于高效地创建菜单栏和上下文菜单。
单击以下链接以查看其详细信息:
序号 | 控件和描述 |
---|---|
1 |
它为窗体提供菜单系统。 |
2 |
它表示显示在MenuStrip 或 ContextMenuStrip 上的可选择选项。ToolStripMenuItem 控件取代了并增加了以前版本中 MenuItem 控件的功能。 |
3 |
它表示快捷菜单。 |
在窗体中添加剪切、复制和粘贴功能
ClipBoard 类公开的方法用于在应用程序中添加剪切、复制和粘贴功能。ClipBoard 类提供将数据放置到系统剪贴板和从系统剪贴板检索数据的方法。
它具有以下常用方法:
序号 | 方法名称和描述 |
---|---|
1 |
Clear 删除剪贴板中的所有数据。 |
2 |
ContainsData 指示剪贴板中是否存在指定格式的数据,或者是否可以转换为该格式。 |
3 |
ContainsImage 指示剪贴板中是否存在 Bitmap 格式的数据,或者是否可以转换为该格式。 |
4 |
ContainsText 指示剪贴板中是否存在 Text 或 UnicodeText 格式的数据,具体取决于操作系统。 |
5 |
GetData 以指定格式从剪贴板检索数据。 |
6 |
GetDataObject 检索当前位于系统剪贴板上的数据。 |
7 |
GetImage 从剪贴板检索图像。 |
8 |
GetText 以 Text 或 UnicodeText 格式从剪贴板检索文本数据,具体取决于操作系统。 |
9 |
GetText(TextDataFormat) 以指定 TextDataFormat 值指示的格式从剪贴板检索文本数据。 |
10 |
SetData 清除剪贴板,然后以指定格式添加数据。 |
11 |
SetText(String) 清除剪贴板,然后以 Text 或 UnicodeText 格式添加文本数据,具体取决于操作系统。 |
以下是一个示例,它演示了如何使用 Clipboard 类的方法来剪切、复制和粘贴数据。请按照以下步骤操作:
在窗体上添加一个富文本框控件和三个按钮控件。
将按钮的 text 属性分别更改为“剪切”、“复制”和“粘贴”。
双击按钮,在代码编辑器中添加以下代码:
Public Class Form1 Private Sub Form1_Load(sender As Object, e As EventArgs) _ Handles MyBase.Load ' Set the caption bar text of the form. Me.Text = "tutorialspoint.com" End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) _ Handles Button1.Click Clipboard.SetDataObject(RichTextBox1.SelectedText) RichTextBox1.SelectedText = "" End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) _ Handles Button2.Click Clipboard.SetDataObject(RichTextBox1.SelectedText) End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) _ Handles Button3.Click Dim iData As IDataObject iData = Clipboard.GetDataObject() If (iData.GetDataPresent(DataFormats.Text)) Then RichTextBox1.SelectedText = iData.GetData(DataFormats.Text) Else RichTextBox1.SelectedText = " " End If End Sub End Class
当使用 Microsoft Visual Studio 工具栏上的启动按钮执行和运行上述代码时,将显示以下窗口:
输入一些文本并检查按钮的工作方式。
在窗体中固定和停靠控件
固定允许您为控件设置一个相对于其容器控件(例如窗体)边缘的固定位置。Control 类的Anchor 属性允许您设置此属性的值。Anchor 属性获取或设置绑定到控件的容器的边缘,并确定控件如何与其父控件一起调整大小。
当您将控件固定到窗体时,当窗体调整大小时,控件会保持与窗体边缘和其固定位置的距离。
您可以从“属性”窗口设置控件的 Anchor 属性值:
例如,让我们在窗体上添加一个 Button 控件,并将其 anchor 属性设置为 Bottom、Right。运行此窗体以查看 Button 控件相对于窗体的原始位置。
现在,当您拉伸窗体时,Button 与窗体右下角之间的距离保持不变。
控件的停靠是指将其停靠到其容器的某个边缘。在停靠中,控件完全填充容器的某个区域。
Control 类的Dock 属性执行此操作。Dock 属性获取或设置停靠到其父控件的控件边框,并确定控件如何与其父控件一起调整大小。
您可以从“属性”窗口设置控件的 Dock 属性值:
例如,让我们在窗体上添加一个 Button 控件,并将其 Dock 属性设置为 Bottom。运行此窗体以查看 Button 控件相对于窗体的原始位置。
现在,当您拉伸窗体时,Button 会随着窗体一起调整大小。
模式窗体
模式窗体是指在您可以继续使用应用程序的其余部分之前需要关闭或隐藏的窗体。所有对话框都是模式窗体。消息框也是模式窗体。
您可以通过两种方式调用模式窗体:
调用ShowDialog 方法
调用Show 方法
让我们来看一个我们将创建一个模式窗体(对话框)的示例。请按照以下步骤操作:
向应用程序添加一个窗体 Form1,并向 Form1 添加两个标签和一个按钮控件。
将第一个标签和按钮的 text 属性分别更改为“欢迎来到 Tutorials Point”和“输入您的姓名”。保持第二个标签的 text 属性为空白。
添加一个新的 Windows 窗体 Form2,并向 Form2 添加两个按钮、一个标签和一个文本框。
将按钮的 text 属性分别更改为“确定”和“取消”。将标签的 text 属性更改为“输入您的姓名:”。
将 Form2 的FormBorderStyle 属性设置为FixedDialog,以赋予其对话框边框。
将 Form2 的ControlBox 属性设置为 False。
将 Form2 的ShowInTaskbar 属性设置为 False。
将“确定”按钮的DialogResult 属性设置为 OK,将“取消”按钮的DialogResult 属性设置为 Cancel。
在 Form2 的 Form2_Load 方法中添加以下代码片段:
Private Sub Form2_Load(sender As Object, e As EventArgs) _ Handles MyBase.Load AcceptButton = Button1 CancelButton = Button2 End Sub
在 Form1 的 Button1_Click 方法中添加以下代码片段:
Private Sub Button1_Click(sender As Object, e As EventArgs) _ Handles Button1.Click Dim frmSecond As Form2 = New Form2() If frmSecond.ShowDialog() = DialogResult.OK Then Label2.Text = frmSecond.TextBox1.Text End If End Sub
当使用 Microsoft Visual Studio 工具栏上的启动按钮执行和运行上述代码时,将显示以下窗口:
单击“输入您的姓名”按钮将显示第二个窗体:
单击“确定”按钮将控制权和信息从模式窗体传回前一个窗体: