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控件用于有效地创建菜单栏和上下文菜单。

点击以下链接查看他们的详细信息:

S.N.Control & Description
1MenuStripIt provides a menu system for a form.它为表单提供了一个菜单系统。
2ToolStripMenuItemIt represents a selectable option displayed on a MenuStrip orContextMenuStrip. The ToolStripMenuItem control replaces and adds functionality to the MenuItem control of previous versions.它表示在MenuStrip或ContextMenuStrip上显示的可选选项。 ToolStripMenuItem控件替换和添加以前版本的MenuItem控件的功能。
2ContextMenuStripIt represents a shortcut menu.它代表一个快捷菜单。

在表单中添加剪切,复制和粘贴功能

ClipBoard类公开的方法用于在应用程序中添加剪切,复制和粘贴功能。 ClipBoard类提供了在系统剪贴板上放置数据和检索数据的方法。

它有以下常用的方法:

SN方法名称和说明
1ClearRemoves all data from the Clipboard. 删除从剪贴板中的所有数据。
2ContainsData Indicates whether there is data on the Clipboard that is in the specified format or can be converted to that format.指示是否有上是在指定的格式或可转换成此格式的剪贴板中的数据。
3ContainsImage Indicates whether there is data on the Clipboard that is in the Bitmap format or can be converted to that format.指示是否有关于那就是在Bitmap格式或可转换成该格式剪贴板数据。
4ContainsText Indicates whether there is data on the Clipboard in the Text or UnicodeText format, depending on the operating system.指示是否在文本或UnicodeText格式剪贴板中的数据,根据不同的操作系统。
5GetData Retrieves data from the Clipboard in the specified format.从指定格式的剪贴板中检索数据。
6GetDataObject Retrieves the data that is currently on the system Clipboard.检索是目前系统剪贴板中的数据。
7getImage Retrieves an image from the Clipboard.检索从剪贴板中的图像。
8getText Retrieves text data from the Clipboard in the Text or UnicodeText format, depending on the operating system.从文本或UnicodeText格式剪贴板中检索文本数据,根据不同的操作系统。
9getText(TextDataFormat) Retrieves text data from the Clipboard in the format indicated by the specified TextDataFormat value.从由指定TextDataFormat值指示的格式剪贴板中检索文本数据。
10SetDataClears the Clipboard and then adds data in the specified format.清除剪贴板,然后以指定的格式将数据添加。
11setText(String) Clears the Clipboard and then adds text data in the Text or UnicodeText format, depending on the operating system.清除剪贴板,然后添加在文本或UnicodeText格式的文本数据,根据不同的操作系统。

以下是一个示例,其中显示了如何使用Clipboard类的方法剪切,复制和粘贴数据。 执行以下步骤:

  • 在表单上添加丰富的文本框控件和三个按钮控件。

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工具栏上的“开始”按钮执行并运行上述代码时,将显示以下窗口:

输入一些文本并检查按钮的工作方式。

锚定和停靠在窗体中的控件

锚定允许您设置控件的定位点位置到其容器的控件,例如,窗体的边缘。控件类 Anchor 属性允许您设置此属性的值。Anchor 属性获取或设置一个控件绑定和确定如何调整控件的大小与它的父容器的边缘。

当你锚定到窗体控件时,该控件维护它距离边缘的形式和其锚的位置,当窗体调整。

你可以从属性窗口设置控件的锚属性值︰

输入一些文本并检查按钮的工作方式。

例如,让我们在表单上添加一个Button控件,并将其anchor属性设置为Bottom,Right。 运行此窗体以查看Button控件相对于窗体的原始位置。

现在,当拉伸窗体时,Button和窗体右下角之间的距离保持不变。

控制装置的对接意味着将其对接到其容器的边缘之一。 在对接中,控制完全填充容器的某些区域。

Control类的Dock属性执行此操作。 Dock属性获取或设置哪些控件边界停靠到其父控件,并确定如何使用其父控件调整控件大小。

您可以从“属性”窗口设置控件的Dock属性值:

例如,让我们在表单上添加一个Button控件,并将其Dock属性设置为Bottom。 运行此窗体以查看Button控件相对于窗体的原始位置。

现在,当你拉伸窗体时,Button会调整窗体的大小。

模式窗体

模式窗体是需要关闭或隐藏的窗体,然后才能继续使用其余应用程序。 所有对话框都是模态窗体。 MessageBox也是一种模态形式。

您可以通过两种方式调用模式窗体:

  • 调用ShowDialog方法

让我们举一个例子,我们将创建一个模态形式,一个对话框。 执行以下步骤:

  • 将表单Form1添加到您的应用程序,并向Form1添加两个标签和一个按钮控件

  • 添加一个新的Windows窗体,Form2,并向Form2添加两个按钮,一个标签和一个文本框。

在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工具栏上的“开始”按钮执行并运行上述代码时,将显示以下窗口:

点击“输入您的姓名”按钮显示第二个表单:

单击确定按钮将控制和信息从模态形式返回到先前的形式: