[英]How to use ToolStripMenuItems without mouse events ( click or double Click event )?
我在使用ToolStripMenuItems的Vb.NET 2008 windows窗體中有一個解決方案,
但我需要實現菜單導航而無需任何鼠標干預。
我只在ToolStripMenuItems,MenuStrip等中找到了鼠標事件。
所有的MenuStrip和ToolStripMenuItem都是以編程方式創建的,從數據庫讀取用戶權限,然后添加一個處理程序來管理事件,但客戶端不希望鼠標交互,他只想要鍵盤輸入!
添加菜單例程:
Private Sub AddModulo(ByVal strNAME As String, ByVal strTITULO As String)
Dim oToolStripMenuItem As New ToolStripMenuItem(strTITULO)
oToolStripMenuItem.Name = strNAME
oToolStripMenuItem.Text = "&" & strTITULO
mnuPrincipal.Items.Add(oToolStripMenuItem)
AddHandler oToolStripMenuItem.MouseMove, AddressOf LoadMenu
End Sub
添加項目例程:
Private Sub AddItems(ByVal StrModulo As String, ByVal strItem As String)
Dim mnuItem As New ToolStripMenuItem
mnuItem.Name = StrModulo.ToUpper
mnuItem.Size = New System.Drawing.Size(145, 22)
If Microsoft.VisualBasic.Left(strItem, 1) = "-" Then
mnuItem.Text = " " & Microsoft.VisualBasic.Mid(strItem.ToUpper, 2)
mnuItem.BackColor = Color.Blue
mnuItem.ForeColor = Color.White
Else
mnuItem.Text = strItem
End If
mnuItem.Tag = UCase(Mid(StrModulo, 5, 2))
AddHandler mnuItem.Click, AddressOf LoadMenuItem
Dim newOption = mnuPrincipal.Items(mnuPrincipal.Items.Count - 1)
newOption.DropDownItems.Add(mnuItem)
End Sub
謝謝。
這是非常基本的東西,所以如果這不是你需要的,只要忽略這個答案,但在我看來,這就是你所要求的。
無論如何,使用鍵盤可以輕松訪問ToolStripMenuItems ...
如果從工具箱中將MenuStrip插入到表單中,而不是使用MenuStrip Tasks中的“插入標准項”選項來插入標准菜單項,則在啟動winforms應用程序時,如果按Alt鍵,則會注意到該字母從每個頂級ToolStripMenuItem加下划線。 如果您按下該鍵與Alt鍵組合,則會提醒您該ToolStripMenuItem的子項可用。 例如,如果按Alt + F,則會刪除“文件”菜單。
以這種方式刪除頂級菜單后,您可以再按一個鍵盤鍵來訪問子項。 這是通過在設計器中ToolStripMenuItem的“Text”屬性中的任何字母前面添加&char來實現的。 這允許您在使用Alt + Key組合刪除頂級菜單后訪問子項。 例如,默認情況下,OpenToolStripMenuItem是文件菜單的子項,在字母O(&Open)前面有&char,因此用戶可以通過按Alt + F + O而不是使用鼠標輕松訪問此事件。
除此之外,您還可以使用ToolStripMenuItem的“ShortcutKeys”屬性輕松地為每個ToolStripMenuItem指定快捷鍵。 如果您在設計器中下拉所選的ToolStripMenuItem的'ShortcutKeys'屬性,您將能夠選擇修改器(Ctrl,Shift,Alt)和您想要與該修改器結合使用的鍵盤鍵(通常為Ctrl + O) for File> Open)。 使用相同的方法,您可以為您自己添加到菜單條的任何ToolStripMenuItem分配鍵盤快捷鍵...
希望這可以幫助...
使用建議的快捷方式,但也在基本菜單容器上將TabStop設置為True。 它將允許鍵盤通過制表符和箭頭鍵訪問菜單。
您應該能夠使用mousedown和click事件的組合來測試“Enter鍵”。 添加一個布爾值,您可以在mousedown事件(點擊前觸發)中設置為true,以確定是否使用鼠標單擊按鈕。 然后在Click事件中,在清除布爾值后檢查boolean和exit子。 如果未設置mousedown布爾值,則按下回車鍵以觸發事件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.