在本章中,我們將研究以下概念:
在應用程序中添加菜單和子菜單
在表單中添加剪切,復制和粘貼功能
錨定和對接控制在一種形式
模態(tài)形式
傳統(tǒng)上,Menu,MainMenu,ContextMenu和MenuItem類用于在Windows應用程序中添加菜單,子菜單和上下文菜單。
現在,MenuStrip,ToolStripMenuItem,ToolStripDropDown和ToolStripDropDownMenu控件替換和添加功能到以前版本的菜單相關的控件。 但是,舊的控制類保留為向后兼容和未來使用。
讓我們首先使用舊版本控件創(chuàng)建典型的Windows主菜單欄和子菜單,因為這些控件在舊應用程序中仍然很常用。
以下是一個示例,顯示了如何使用菜單項創(chuàng)建菜單欄:文件,編輯,視圖和項目。 文件菜單有子菜單新建,打開和保存。
讓我們雙擊窗體,并在打開的窗口中放下面的代碼。
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工具欄上的“開始”按鈕執(zhí)行并運行上述代碼時,將顯示以下窗口:
Windows窗體包含一組豐富的類,用于創(chuàng)建您自己的具有現代外觀,外觀和感覺的自定義菜單。 MenuStrip,ToolStripMenuItem,ContextMenuStrip控件用于有效地創(chuàng)建菜單欄和上下文菜單。
點擊以下鏈接查看他們的詳細信息:
S.N. | Control & Description |
---|---|
1 | 它為表單提供了一個菜單系統(tǒng)。 |
2 | 它表示在MenuStrip或ContextMenuStrip上顯示的可選選項。 ToolStripMenuItem控件替換和添加以前版本的MenuItem控件的功能。 |
2 | 它代表一個快捷菜單。 |
ClipBoard類公開的方法用于在應用程序中添加剪切,復制和粘貼功能。 ClipBoard類提供了在系統(tǒng)剪貼板上放置數據和檢索數據的方法。
它有以下常用的方法:
SN | 方法名稱和說明 |
---|---|
1 | Clear
刪除從剪貼板中的所有數據。 |
2 | ContainsData 指示是否有上是在指定的格式或可轉換成此格式的剪貼板中的數據。 |
3 | ContainsImage 指示是否有關于那就是在Bitmap格式或可轉換成該格式剪貼板數據。 |
4 | ContainsText 指示是否在文本或UnicodeText格式剪貼板中的數據,根據不同的操作系統(tǒng)。 |
5 | GetData 從指定格式的剪貼板中檢索數據。 |
6 | GetDataObject 檢索是目前系統(tǒng)剪貼板中的數據。 |
7 | getImage 檢索從剪貼板中的圖像。 |
8 | getText 從文本或UnicodeText格式剪貼板中檢索文本數據,根據不同的操作系統(tǒng)。 |
9 | getText(TextDataFormat) 從由指定TextDataFormat值指示的格式剪貼板中檢索文本數據。 |
10 | SetData 清除剪貼板,然后以指定的格式將數據添加。 |
11 | setText(String) 清除剪貼板,然后添加在文本或UnicodeText格式的文本數據,根據不同的操作系統(tǒng)。 |
以下是一個示例,其中顯示了如何使用Clipboard類的方法剪切,復制和粘貼數據。 執(zhí)行以下步驟:
在表單上添加豐富的文本框控件和三個按鈕控件。
將按鈕的文本屬性分別更改為“剪切”,“復制”和“粘貼”。
雙擊按鈕,在代碼編輯器中添加以下代碼:
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工具欄上的“開始”按鈕執(zhí)行并運行上述代碼時,將顯示以下窗口:
輸入一些文本并檢查按鈕的工作方式。
輸入一些文本并檢查按鈕的工作方式。
例如,讓我們在表單上添加一個Button控件,并將其anchor屬性設置為Bottom,Right。 運行此窗體以查看Button控件相對于窗體的原始位置。
現在,當拉伸窗體時,Button和窗體右下角之間的距離保持不變。
控制裝置的對接意味著將其對接到其容器的邊緣之一。 在對接中,控制完全填充容器的某些區(qū)域。
Control類的Dock屬性執(zhí)行此操作。 Dock屬性獲取或設置哪些控件邊界??康狡涓缚丶⒋_定如何使用其父控件調整控件大小。
您可以從“屬性”窗口設置控件的Dock屬性值:
例如,讓我們在表單上添加一個Button控件,并將其Dock屬性設置為Bottom。 運行此窗體以查看Button控件相對于窗體的原始位置。
現在,當你拉伸窗體時,Button會調整窗體的大小。
模式窗體是需要關閉或隱藏的窗體,然后才能繼續(xù)使用其余應用程序。 所有對話框都是模態(tài)窗體。
MessageBox也是一種模態(tài)形式。您可以通過兩種方式調用模式窗體:
調用ShowDialog方法
調用Show方法
讓我們舉一個例子,我們將創(chuàng)建一個模態(tài)形式,一個對話框。 執(zhí)行以下步驟:
將表單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 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工具欄上的“開始”按鈕執(zhí)行并運行上述代碼時,將顯示以下窗口:
點擊“輸入您的姓名”按鈕顯示第二個表單:
單擊確定按鈕將控制和信息從模態(tài)形式返回到先前的形式:
更多建議: