本篇文章帮大家学习VB.Net高级窗体,包含了VB.Net高级窗体使用方法、操作技巧、实例演示和注意事项,有一定的学习价值,大家可以用来参考。
在本章中,我们来学习以下概念和功能应用:
在应用程序中添加菜单和子菜单
在窗体中添加剪切,复制和粘贴功能
锚定和停靠控件在窗体中
模态窗体
在应用程序中添加菜单和子菜单
传统上,Menu,MainMenu,ContextMenu和MenuItem类用于在Windows应用程序中添加菜单,子菜单和上下文菜单。现在,使用MenuStrip,ToolStripMenuItem,ToolStripDropDown和ToolStripDropDownMenu控件替换并添加功能到以前版本的菜单相关的控件。但是,为了向后兼容和将来使用,保留了旧的控制类。
先使用旧版本控件创建一个典型的Windows主菜单栏和子菜单,因为这些控件在旧应用程序中仍然有很多用处。
下面是一个例子中,显示了如何创建菜单栏菜单项:文件,编辑,视图和项目。文件菜单有子菜单新建,打开和保存。
双击窗体并将下面的代码放在打开的窗口中,参考以下代码的实现(项目:MenusSubMenus) -
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("&文件")
Dim myMenuItemEdit As New MenuItem("&编辑")
Dim myMenuItemView As New MenuItem("&查看")
Dim myMenuItemProject As New MenuItem("&工程")
'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("&新建")
Dim myMenuItemOpen As New MenuItem("&打开")
Dim myMenuItemSave As New MenuItem("&保存")
'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 = "Menu&SubMenu示例 - jikedaquan.com"
End Sub
End Class
当上面的代码执行并使用Microsoft Visual Studio工具栏上的“开始”按钮运行时,它将显示以下窗口:
Windows窗体包含一组丰富的类,用于创建具有现代外观和外观的自定义菜单。 MenuStrip,ToolStripMenuItem,ContextMenuStrip控件用于高效地创建菜单栏和上下文菜单。
点击以下链接查看详细信息:
编号
控件
描述
1
它为窗体提供了一个菜单系统。
2
它表示在MenuStrip或ContextMenuStrip上显示的可选选项。 ToolStripMenuItem控件替换并添加了以前版本的MenuItem控件的功能。
在窗体中添加剪切,复制和粘贴功能
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值指定的格式从剪贴板中检索文本数据。
11
SetData
清除剪贴板,然后以指定的格式添加数据。
12
SetText(String)
清除剪贴板,然后根据操作系统,以Text或UnicodeText格式添加文本数据。
以下一个例子,它显示如何使用Clipboard类的方法剪切,复制和粘贴数据。参考以下步骤:
在窗体上添加一个富文本框控件和三个按钮控件。
将按钮的Text属性分别更改为“剪切”,“复制”和“粘贴”。
双击按钮在代码编辑器中添加以下代码(项目:Clipboard):
Imports System.Windows.Forms.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 = "剪切-复制-粘贴 - jikedaquan.com"
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim ClipboardData As New DataObject()
ClipboardData.SetData(DataFormats.Rtf, RichTextBox1.Rtf)
ClipboardData.SetData(DataFormats.Text, RichTextBox1.Text)
My.Computer.Clipboard.SetDataObject(ClipboardData)
RichTextBox1.SelectedText = ""
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim ClipboardData As New DataObject()
ClipboardData.SetData(DataFormats.Rtf, RichTextBox1.Rtf)
ClipboardData.SetData(DataFormats.Text, RichTextBox1.Text)
My.Computer.Clipboard.SetDataObject(ClipboardData)
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Dim iData As IDataObject
iData = My.Computer.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属性获取或设置控件绑定到的容器的边,并确定控件的父级调整大小。
当将控件锚定到窗体时,控件将在窗体大小调整后保持其与窗体边缘及其锚定位置的距离。
可以从“属性”窗口中设置控件的“锚点”属性值:
例如,在窗体中添加一个Button控件,并将其Anchor属性设置为Bottom,Right。 运行此窗体来查看Button控件相对于窗体的原始位置。如下图所示 -
现在,当拉伸窗体放大时,Button和窗体右下角之间的距离保持不变。
停靠控制装置将其对接到其容器的边缘之一。 在对接中,控制器完全填充容器的某个区域。Control类的Dock属性执行此操作。 Dock属性获取或设置哪个控件边框停靠在其父控件上,并确定如何使用其父控件调整大小。
可以从“属性”窗口中设置控件的Dock属性值为Bottom:
例如,在窗体上添加一个Button控件,并将其Dock属性设置为Bottom。运行此窗体来查看此Button控件相对于窗体的原始位置。
现在,当拉伸窗体的时候,按钮就会随着窗体的大小自动调整。
模态窗体
模态窗体是在继续使用其他应用程序之前需要关闭或隐藏的窗体。所有对话框都是模态形式。MessageBox控件也是一个模态窗体。
可以通过两种方式调用模态窗体:
调用ShowDialog方法
调用Show方法
举一个例子,下面创建一个模式窗体:一个对话框。参考以下步骤:
将Form1添加到应用程序,并将两个标签和一个按钮控件添加到Form1中。
将第一个标签和按钮的Text属性分别更改为“欢迎使用易百教程”和“输入你的名字”。保持第二个标签的Text属性为空。设计视图效果如下 -
在“解决方案资源管理器”中,找到项目名称,然后右键点击,在弹出的菜单中选择:添加->Windows窗体,添加一个新的Windows窗体:Form2,并将两个按钮,一个标签和一个文本框添加到Form2中。
将按钮的Text属性分别更改为“确定”和“取消”。 将标签的Text属性更改为“输入您的姓名:”。
将Form2的FormBorderStyle属性设置为FixedDialog,给它一个对话框边框。
将Form2的ControlBox属性设置为False。
将Form2的ShowInTaskbar属性设置为False。
将“确定”按钮的DialogResult属性设置为OK,并将“取消”按钮设置为Cancel。
最终设计的视图效果如下 -
在Form2.vb添加下面的代码:
Public Class Form2
Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
AcceptButton = Button1
CancelButton = Button2
End Sub
End Class
在Form1.vb添加下面的代码:
Public Class Form1
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
End Class
当上面的代码执行并使用Microsoft Visual Studio工具栏上的“开始”按钮运行时,它将显示以下窗口:
点击“输入你的名字”按钮显示第二个窗体:
点击“确定”按钮,将控制和信息从模态窗体恢复到第一个窗体,结果如下: