2010-04-04 21 views
1

我有一個解決方案在Vb.NET 2008 windows窗體與ToolStripMenuItems,如何在沒有鼠標事件的情況下使用ToolStripMenuItems(點擊或雙擊事件)?

但我需要實現沒有任何鼠標干預的菜單導航。

我只找到鼠標事件在ToolStripMenuItems,MenuStrip中,等

所有的MenuStrip和ToolStripMenuItems被編程創建,從數據庫中讀取用戶的權限,然後添加一個處理程序來管理事件,但客戶不希望鼠標交互,他只需要鍵盤輸入!

添加菜單程序:

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 

THX。

+0

按下Alt,使用箭頭鍵。 – 2010-04-04 12:29:11

回答

3

這是非常基本的東西,所以如果這不是你所需要的只是忽略這個答案,但在我看來,這是你所問的。

反正ToolStripMenuItems都很方便使用鍵盤...

如果從工具箱,比使用來自MenuStrip中任務的「插入標準項」選項以插入標準菜單項中插入的MenuStrip到您的形式,當你啓動你的winforms應用程序時,如果你按下Alt鍵,你會注意到每個頂級ToolStripMenuItem的一個字母被加下劃線。這會提醒您,如果您按下與Alt鍵結合的該鍵,則該ToolStripMenuItem的子項目可用。例如,如果按Alt + F,則會丟棄文件菜單。

頂層菜單以這種方式丟棄後,您可以再按一個鍵盤鍵訪問子項目。這是通過在設計器的ToolStripMenuItem的「文本」屬性中的任何字母前添加&字符來實現的。這允許您在使用Alt +組合鍵刪除頂層菜單後訪問子項目。例如,默認OpenToolStripMenuItem是文件菜單的子項,在字母O前面有&字符(&打開),因此用戶可以通過按Alt + F + O而不是使用鼠標輕鬆訪問此事件。

除此之外,您可以使用ToolStripMenuItem的'ShortcutKeys'屬性輕鬆地爲每個ToolStripMenuItem指定一個快捷鍵。如果您在設計器中下拉選定的ToolStripMenuItem的'ShortcutKeys'屬性,則可以選擇修改器(Ctrl,Shift,Alt)以及想要與該修改器結合使用的鍵盤鍵(通常爲Ctrl + O對於文件>打開)。使用同樣的方法的建議外,還設置接受tab你可以分配鍵盤快捷鍵的任何ToolStripMenuItem您添加到菜單脫光自己......

希望這有助於...

+0

請閱讀我的文章我添加一些代碼來解釋更好的問題 – RicardoBalda 2010-04-04 17:48:43

1

使用的快捷鍵在您的基本菜單容器上爲真。它將允許鍵盤通過標籤和方向鍵訪問菜單。

您應該可以使用mousedown和click事件的組合來測試「Enter鍵」。添加一個布爾值,您可以在mousedown事件中設置爲true(點擊前觸發),該布爾值確定是否使用鼠標單擊按鈕。然後在Click事件中檢查布爾值並在清除布爾值之後退出sub。如果未設置mousedown布爾值,則按下回車鍵以觸發事件。

相關問題