簡體   English   中英

如何在沒有鼠標事件的情況下使用ToolStripMenuItems(單擊或雙擊事件)?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM