在本章中,讓我們研究以下概念 :
在應用程序中添加菜單和子菜單
在表單中添加剪切,復制和粘貼功能
錨定和對接控件表格
模態表格
添加菜單和子菜單應用程序中的菜單
傳統上,菜單,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工具欄上的開始按鈕執行并運行上述代碼時,它將顯示以下窗口 :
點擊”輸入您的姓名”按鈕顯示第二種形式 :
單擊”確定”按鈕將控件和信息從模態窗體返回到上一個窗體 :