在本章中,让我们研究以下概念 :
在应用程序中添加菜单和子菜单
在表单中添加剪切,复制和粘贴功能
锚定和对接控件表格
模态表格
传统上,菜单, 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 = "IT屋.com" End Sub End Class
执行上述代码时并使用Microsoft Visual Studio工具栏上的"开始"按钮运行,它将显示以下窗口 :
Windows窗体包含一组丰富的类,用于创建具有现代外观,外观和感觉的自定义菜单. MenuStrip , ToolStripMenuItem , ContextMenuStrip 控件用于有效地创建菜单栏和上下文菜单.
点击以下链接查看他们的详细信息 :
Sr.No. | Control&说明 |
---|---|
1 | MenuStrip 它为表单提供了一个菜单系统. |
2 | ToolStripMenuItem 它表示 MenuStrip上显示的可选选项或 ContextMenuStrip . ToolStripMenuItem控件替换和添加以前版本的MenuItem控件的功能. |
3 | ContextMenuStrip 它代表一个快捷菜单. |
ClipBoard 类公开的方法用于在应用程序中添加剪切,复制和粘贴功能. ClipBoard类提供了在系统剪贴板上放置数据和从中检索数据的方法.
它有以下常用方法 :
Sr.No. | 方法名称&说明 |
---|---|
1 | Clear 从剪贴板中删除所有数据. |
2 | ContainsData 表示是否有剪贴板上指定格式的数据,或者可以转换为该格式. |
3 | ContainsImage 表示是否有数据在剪贴板上的Bitmap格式或可以转换为该格式. |
4 | ContainsText 表示是否有数据Text或UnicodeText格式的剪贴板,具体取决于操作系统. |
5 | GetData 从指定的剪贴板中检索数据格式. |
6 | GetDataObject 检索系统剪贴板上当前的数据. |
7 | GetImage 从剪贴板中检索图像. |
8 | GetText 从文本中的剪贴板中检索文本数据或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 = "IT屋.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
执行上述代码并使用开始按钮avai运行在Microsoft Visual Studio工具栏中,它将显示以下窗口 :
输入一些文本并检查按钮的工作方式.
锚定允许您将控件的锚位置设置为其容器控件的边缘,例如表单. Control类的 Anchor 属性允许您设置此属性的值. Anchor属性获取或设置控件绑定到的容器的边缘,并确定如何使用其父控件调整控件的大小.
将控件锚定到窗体时,控件在调整窗体大小时,它会保持与窗体边缘及其固定位置的距离.
您可以从"属性"窗口中设置控件的Anchor属性值 :
例如,让我们在窗体上添加一个Button控件,并将其anchor属性设置为Bottom,Right.运行此表单以查看Button控件相对于表单的原始位置.
现在,当您拉伸表单时,Button与表单右下角之间的距离保持不变.
控件的停靠意味着停靠它到其容器的一个边缘.在对接中,控件完全填充容器的某个区域.
Control类的 Dock 属性执行此操作. Dock属性获取或设置哪些控件边框停靠在其父控件上,并确定如何使用其父控件调整控件的大小.
您可以从Properties设置控件的Dock属性值window :
例如,让我们在窗体上添加一个Button控件,并将其Dock属性设置为Bottom.运行此表单以查看Button控件相对于表单的原始位置.
现在,当您拉伸表单时,Button会使用表单调整自身大小.
模态表格是那些需要关闭或隐藏的表单,然后才能继续使用应用程序的其余部分.所有对话框都是模态形式. MessageBox也是一种模态形式.
您可以通过两种方式调用模态形式 :
调用 ShowDialog 方法
调用显示方法
让我们举一个例子,我们将创建一个模态表单,一个对话框.请执行以下步骤 :
将表单Form1添加到应用程序中,并添加两个标签和一个按钮控件Form1
分别将第一个标签和按钮的文本属性更改为"欢迎使用教程点"和"输入您的姓名".将第二个标签的文本属性保留为空白.
添加新的Windows窗体,Form2,并添加两个按钮,一个标签,以及Form2的文本框.
分别将按钮的文本属性更改为"确定"和"取消".将标签的文本属性更改为"输入您的姓名:".
将Form2的 FormBorderStyle 属性设置为 FixedDialog ,用于给它一个对话框边框.
将Form2的 ControlBox 属性设置为False.
将Form2的 ShowInTaskbar 属性设置为False.
将OK按钮的 DialogResult 属性设置为OK,将Cancel按钮设置为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 Form2_Load(sender As Object, e As EventArgs) _ Handles MyBase.Load AcceptButton = Button1 CancelButton = Button2 End Sub
当使用Microsoft Visual Studio工具栏上的开始按钮执行并运行上述代码时,它将显示以下窗口 :
点击"输入您的姓名"按钮显示第二种形式 :
单击"确定"按钮将控件和信息从模态窗体返回到上一个窗体 :