Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 如何在没有鼠标事件(单击或双击事件)的情况下使用ToolStripMenuItems?_Vb.net_Winforms_Visual Studio 2008_Menu - Fatal编程技术网

Vb.net 如何在没有鼠标事件(单击或双击事件)的情况下使用ToolStripMenuItems?

Vb.net 如何在没有鼠标事件(单击或双击事件)的情况下使用ToolStripMenuItems?,vb.net,winforms,visual-studio-2008,menu,Vb.net,Winforms,Visual Studio 2008,Menu,我在Vb.NET 2008 windows窗体中使用ToolStripMenuItems提供了一个解决方案 但是我需要在没有任何鼠标干预的情况下实现菜单导航 我只在ToolStripMenuItems、MenuStrip等中找到鼠标事件 所有MenuStrip和ToolStripMenuItems都是通过编程方式创建的,从数据库读取用户权限,然后添加一个处理程序来管理事件,但客户端不需要鼠标交互,只需要键盘输入 添加菜单例程: Private Sub AddModulo(ByVal st

我在Vb.NET 2008 windows窗体中使用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.

这是非常基本的东西,所以如果这不是你需要的,就忽略这个答案,但在我看来,这就是你要问的

无论如何,ToolStripMenuItems可以通过键盘轻松访问

如果从工具箱将MenuStrip插入表单,然后使用MenuStrip任务中的“插入标准项”选项插入标准菜单项,则在启动winforms应用程序时,如果按Alt键,您会注意到每个顶级ToolStripMenuItem中的字母都有下划线。这会提醒您,如果同时按该键和Alt键,则ToolStripMenuItem的子项可用。例如,如果按Alt+F,则会删除“文件”菜单

以这种方式删除顶层菜单后,您可以再按一个键盘键访问子项。这是通过在设计器中ToolStripMenuItem的“Text”属性中的任何字母前面添加一个&char来实现的。这允许您在使用Alt+组合键放下顶层菜单后访问子项。例如,默认情况下,文件菜单的子项OpenToolStripMenuItem在字母O&Open前面有&char,因此用户可以通过按Alt+F+O而不是使用鼠标轻松访问此事件

除此之外,通过使用ToolStripMenuItem的“ShortcutKeys”属性,您可以轻松地为每个ToolStripMenuItem分配快捷键。如果在设计器中下拉选定的ToolStripMenuItem的“快捷键”属性,则可以选择要与该修改器结合使用的修改器Ctrl、Shift、Alt和键盘键,通常是文件>打开的Ctrl+O。使用相同的方法,您可以为自己添加到菜单条的任何ToolStripMenuItem指定键盘快捷键


希望这有帮助…

这是非常基本的东西,所以如果这不是你需要的,就忽略这个答案,但在我看来,这就是你要问的

无论如何,ToolStripMenuItems可以通过键盘轻松访问

如果从工具箱将MenuStrip插入表单,然后使用MenuStrip任务中的“插入标准项”选项插入标准菜单项,则在启动winforms应用程序时,如果按Alt键,您会注意到每个顶级ToolStripMenuItem中的字母都有下划线。这会提醒您,如果同时按该键和Alt键,则ToolStripMenuItem的子项可用。例如,如果按Alt+F,则会删除“文件”菜单

以这种方式删除顶层菜单后,您可以再按一个键盘键访问子项。这是通过在设计器中ToolStripMenuItem的“Text”属性中的任何字母前面添加一个&char来实现的。这允许您在使用Alt+组合键放下顶层菜单后访问子项。例如,默认情况下,文件菜单的子项OpenToolStripMenuItem在字母O&Open前面有&char,因此用户可以通过按Alt+F+O而不是使用鼠标轻松访问此事件

除此之外,通过使用ToolStripMenuItem的“ShortcutKeys”属性,您可以轻松地为每个ToolStripMenuItem分配快捷键。如果在设计器中下拉选定的ToolStripMenuItem的“快捷键”属性,则可以选择要与该修改器结合使用的修改器Ctrl、Shift、Alt和键盘键,通常是文件>打开的Ctrl+O。使用相同的方法,您可以为自己添加到菜单条的任何ToolStripMenuItem指定键盘快捷键


希望这有助于…

使用建议的快捷方式,但也可以在基本菜单容器上将TabStop设置为True。它将允许键盘通过选项卡和箭头键访问菜单


您应该能够使用mousedown和click事件的组合来测试Enter键。添加一个布尔值,您可以在单击前的mousedown事件中将其设置为true,以确定是否使用鼠标单击按钮。然后在单击事件中检查布尔值,并在清除布尔值后退出子项。如果未设置mousedown布尔值,则按enter键触发事件。

使用建议的快捷方式,但也可在基本菜单容器上将TabStop设置为True。它将允许键盘访问 通过tab键和箭头键打开菜单


您应该能够使用mousedown和click事件的组合来测试Enter键。添加一个布尔值,您可以在单击前的mousedown事件中将其设置为true,以确定是否使用鼠标单击按钮。然后在单击事件中检查布尔值,并在清除布尔值后退出子项。如果未设置鼠标向下布尔值,则按enter键触发事件。

按Alt键,使用箭头键。按Alt键,使用箭头键。请阅读我的帖子我添加了一些代码以更好地解释我的问题请阅读我的帖子我添加了一些代码以更好地解释我的问题