-

在本章中,我们将研究以下概念:

  • 在应用程序中添加菜单和子菜单

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

  • 锚定和对接控制在一种形式

  • 模态形式


在应用程序中添加菜单和子菜单

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


VB.Net菜单示例


Windows窗体包含一组丰富的类,用于创建您自己的具有现代外观,外观和感觉的自定义菜单。 MenuStrip,ToolStripMenuItem,ContextMenuStrip控件用于有效地创建菜单栏和上下文菜单。

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

S.N.Control & Description
1

MenuStrip

It provides a menu system for a form.

它为表单提供了一个菜单系统。

2

ToolStripMenuItem

It 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控件的功能。

2

ContextMenuStrip

It represents a shortcut menu.

它代表一个快捷菜单。


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

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

它有以下常用的方法:

SN方法名称和说明
1

Clear

Removes all data from the Clipboard.

删除从剪贴板中的所有数据。

2

ContainsData

Indicates whether there is data on the Clipboard that is in the specified format or can be converted to that format.

指示是否有上是在指定的格式或可转换成此格式的剪贴板中的数据。

3

ContainsImage

Indicates whether there is data on the Clipboard that is in the Bitmap format or can be converted to that format.

指示是否有关于那就是在Bitmap格式或可转换成该格式剪贴板数据。

4

ContainsText

Indicates whether there is data on the Clipboard in the Text or UnicodeText format, depending on the operating system.

指示是否在文本或UnicodeText格式剪贴板中的数据,根据不同的操作系统。

5

GetData

Retrieves data from the Clipboard in the specified format.

从指定格式的剪贴板中检索数据。

6

GetDataObject

Retrieves the data that is currently on the system Clipboard.

检索是目前系统剪贴板中的数据。

7

getImage

Retrieves an image from the Clipboard.

检索从剪贴板中的图像。

8

getText

Retrieves text data from the Clipboard in the Text or UnicodeText format, depending on the operating system.

从文本或UnicodeText格式剪贴板中检索文本数据,根据不同的操作系统。

9

getText(TextDataFormat)

Retrieves text data from the Clipboard in the format indicated by the specified TextDataFormat value.

从由指定TextDataFormat值指示的格式剪贴板中检索文本数据。

10

SetData

Clears the Clipboard and then adds data in the specified format.

清除剪贴板,然后以指定的格式将数据添加。

11

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


VB.Net剪切,粘贴,复制示例


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

锚定停靠窗体控件

锚定允许设置控件定位点位置容器控件例如窗体边缘控件 Anchor 属性允许设置属性Anchor 属性获取设置一个控件绑定确定如何调整控件大小容器边缘

锚定窗体控件控件维护距离边缘形式位置窗体调整

可以属性窗口设置控件属性

控件的VB.Net锚固


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


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


VB.Net锚例

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


VB.Net锚例

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

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

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


控件的VB.Net对接

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


VB.Net实例对接


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


VB.Net实例对接


模式窗体

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


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

  • 调用ShowDialog方法

  • 调用Show方法


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

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

  • 将第一个标签和按钮的文本属性分别更改为“欢迎使用教程点”和“输入您的名称”。 将第二个标签的文本属性保留为空。

    VB.Net模式窗体示例
  • 添加一个新的Windows窗体,Form2,并向Form2添加两个按钮,一个标签和一个文本框。

  • 将按钮的文本属性分别更改为“确定”和“取消”。 将标签的文本属性更改为“输入您的姓名:”。

  • 将Form2的FormBorderStyle属性设置为FixedDialog,为其提供对话框边框。

  • 将Form2的ControlBox属性设置为False。

  • 将Form2的ShowInTaskbar属性设置为False。

  • 将OK按钮的DialogResult属性设置为OK,将Cancel按钮设置为Cancel。

VB.Net模式窗体示例


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


VB.Net模式窗体示例


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


VB.Net模式窗体示例

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


VB.Net模式窗体示例