VB.Net - 高级表单

  • 简述

    在本章中,让我们研究以下概念 -
    • 在应用程序中添加菜单和子菜单
    • 在表单中添加剪切、复制和粘贴功能
    • 在表单中锚定和停靠控件
    • 模态形式
  • 在应用程序中添加菜单和子菜单

    传统上,MenuMainMenuContextMenuMenuItem类用于在 Windows 应用程序中添加菜单、子菜单和上下文菜单。
    现在 MenuStrip, 这 ToolStripMenuItem, ToolStripDropDownToolStripDropDownMenu控件替换以前版本的与菜单相关的控件并为其添加功能。但是,为了向后兼容和将来使用,旧的控件类被保留。
    让我们首先使用旧版本控件创建一个典型的 windows 主菜单栏和子菜单,因为这些控件仍然在旧应用程序中大量使用。
    下面是一个例子,它展示了我们如何创建一个带有菜单项的菜单栏:文件、编辑、查看和项目。文件菜单有子菜单新建、打开和保存。
    让我们双击 Form 并将以下代码放入打开的窗口中。
    
    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 = "jc2182.com"
       End Sub
    End Class
    
    当使用 Microsoft Visual Studio 工具栏上提供的开始按钮执行并运行上述代码时,它将显示以下窗口 -
    VB.Net 菜单示例
    Windows 窗体包含一组丰富的类,用于创建您自己的具有现代外观、外观和感觉的自定义菜单。这MenuStrip, ToolStripMenuItem, ContextMenuStrip 控件用于有效地创建菜单栏和上下文菜单。
    单击以下链接以检查其详细信息 -
    序号 控制和描述
    1
    它为表单提供了一个菜单系统。
    2
    它代表一个可选择的选项显示在 MenuStrip 要么 ContextMenuStrip. ToolStripMenuItem 控件替换了以前版本的 MenuItem 控件并为其添加了功能。
    3
    它代表一个快捷菜单。
  • 在表单中添加剪切、复制和粘贴功能

    公开的方法 ClipBoard类用于在应用程序中添加剪切、复制和粘贴功能。ClipBoard 类提供在系统剪贴板上放置数据和从系统剪贴板上检索数据的方法。
    它有以下常用方法 -
    序号 方法名称和描述
    1
    Clear
    从剪贴板中删除所有数据。
    2
    ContainsData
    指示剪贴板上是否有指定格式的数据或可以转换为该格式的数据。
    3
    ContainsImage
    指示剪贴板上是否有位图格式的数据或可以转换为该格式的数据。
    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 类的方法剪切、复制和粘贴数据。采取以下步骤 -
    • 在窗体上添加一个富文本框控件和三个按钮控件。
    • 将按钮的文本属性分别更改为剪切、复制和粘贴。
    • 双击按钮在代码编辑器中添加以下代码 -
    
    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 = "jc2182.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
    
    当上面的代码被执行并运行时使用 Start Microsoft Visual Studio 工具栏上可用的按钮,它将显示以下窗口 -
    VB.Net 剪切、粘贴、复制示例
    输入一些文本并检查按钮的工作方式。
  • 在表单中锚定和停靠控件

    Anchoring允许您将控件的锚位置设置为其容器控件的边缘,例如窗体。这AnchorControl 类的属性允许您设置此属性的值。Anchor 属性获取或设置控件绑定到的容器的边缘,并确定控件如何与其父控件一起调整大小。
    当您将控件锚定到窗体时,在调整窗体大小时,该控件会保持与窗体边缘的距离及其锚定位置。
    您可以从“属性”窗口设置控件的 Anchor 属性值 -
    VB.Net 控件锚定
    例如,让我们在窗体上添加一个 Button 控件并将其锚点属性设置为底部、右侧。运行此窗体以查看 Button 控件相对于窗体的原始位置。
    VB.Net 锚定示例
    现在,当您拉伸窗体时,按钮和窗体右下角之间的距离保持不变。
    VB.Net 锚定示例
    Docking控件意味着将其停靠到其容器的边缘之一。在对接时,控件完全填充容器的特定区域。
    DockControl 类的属性执行此操作。Dock 属性获取或设置哪些控件边框停靠到其父控件,并确定控件如何与其父控件一起调整大小。
    您可以从“属性”窗口设置控件的 Dock 属性值 -
    VB.Net 控件对接
    例如,让我们在窗体上添加一个 Button 控件并将其 Dock 属性设置为底部。运行此窗体以查看 Button 控件相对于窗体的原始位置。
    VB.Net 对接示例
    现在,当您拉伸表单时,按钮会随着表单调整自身大小。
    VB.Net 对接示例
  • 模态形式

    Modal Forms是那些在您可以继续使用应用程序的其余部分之前需要关闭或隐藏的表单。所有对话框都是模态形式。MessageBox 也是一种模态形式。
    您可以通过两种方式调用模态表单 -
    • 调用 ShowDialog 方法
    • 调用 Show 方法
    让我们举一个例子,在这个例子中我们将创建一个模态窗体,一个对话框。采取以下步骤 -
    • 向您的应用程序添加一个表单 Form1,并向 Form1 添加两个标签和一个按钮控件
    • 将第一个标签和按钮的文本属性分别更改为“欢迎使用教程点”和“输入您的姓名”。将第二个标签的文本属性保留为空白。
      VB.Net 模态表单示例
    • 添加一个新的 Windows 窗体 Form2,并向 Form2 添加两个按钮、一个标签和一个文本框。
    • 将按钮的文本属性分别更改为 OK 和 Cancel。将标签的文本属性更改为“输入您的姓名:”。
    • 将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
    
    当上面的代码被执行并运行时使用 Start Microsoft Visual Studio 工具栏上可用的按钮,它将显示以下窗口 -
    VB.Net 模态表单示例
    单击“输入您的姓名”按钮显示第二种形式 -
    VB.Net 模态表单示例
    单击“确定”按钮将控制和信息从模态表单返回到上一个表单 -
    VB.Net 模态表单示例