2010-04-04 4 views
1

나는 ToolStripMenuItems,마우스 이벤트 (클릭 또는 더블 클릭 이벤트)없이 ToolStripMenuItems를 사용하는 방법?

과 함께 Vb.NET 2008 windows 폼의 솔루션을 가지고 있지만 마우스 조작없이 메뉴 탐색을 구현해야합니다.

나는 단지 등 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 

들으.

+0

Alt 키를 누른 상태에서 화살표 키를 사용하십시오. –

답변

3

이것은 매우 기본적인 내용이므로이 답변을 무시하면되지만 내게 이것이 사용자에게 묻는 것으로 보입니다.

어쨌든이 ToolStripMenuItems이

... 키보드를 사용하여 쉽게 액세스 할 수있는 도구 상자에서 표준 메뉴 항목을 삽입 MenuStrip 작업에서 '삽입 표준 항목'옵션을 사용하여보다 양식에 MenuStrip을 삽입하는 경우, winforms 응용 프로그램을 시작할 때 Alt 키를 누르면 각 최상위 ToolStripMenuItem의 문자에 밑줄이 표시됩니다. 이 키를 Alt 키와 함께 누르면 해당 ToolStripMenuItem의 하위 항목을 사용할 수 있음을 알립니다. 예를 들어 Alt + F를 누르면 파일 메뉴가 드롭됩니다.

이렇게하면 최상위 메뉴가 삭제 된 후 하나 이상의 키보드 키를 눌러 하위 항목에 액세스 할 수 있습니다. 디자이너의 ToolStripMenuItem의 'Text'속성에서 문자 앞에 문자 &을 추가하면됩니다. 이렇게하면 최상위 메뉴를 삭제하기 위해 Alt + Key 조합을 사용한 후 하위 항목에 액세스 할 수 있습니다. 예를 들어 파일 메뉴의 하위 항목 인 OpenToolStripMenuItem은 문자 O (& 열기) 앞에 & char이 있으므로 사용자는 마우스 대신 Alt + F + O를 눌러이 이벤트에 쉽게 액세스 할 수 있습니다.

그 외에도 ToolStripMenuItem의 'ShortcutKeys'속성을 사용하여 각 ToolStripMenuItem에 바로 가기 키를 쉽게 지정할 수 있습니다. 선택한 ToolStripMenuItem의 'ShortcutKeys'속성을 디자이너에 드롭 다운하면 수정 자 (Ctrl, Shift, Alt)와 해당 수정 자 (Ctrl + O)와 함께 사용할 키보드 키를 선택할 수 있습니다 파일> 열기). 제안뿐만 아니라,로를 TabStop를 설정 한 같은 방법을 사용하면 당신은 당신이 자신을 제거 메뉴에 추가하는 ToolStripMenuItem에 키보드 바로 가기 키 ...이 도움이

희망 ...

+0

내 게시물을 읽으십시오. 내 질문을 더 잘 설명하는 코드를 추가하십시오. – RicardoBalda

1

를 사용하여 바로 가기를 할당 할 수 있습니다 기본 메뉴 컨테이너에서 True. 키보드가 탭 및 화살표 키를 사용하여 메뉴에 액세스 할 수 있습니다.

mousedown 및 click 이벤트의 콤보를 사용하여 "Enter 키"를 테스트 할 수 있어야합니다. 마우스를 사용하여 버튼을 클릭했는지 여부를 결정하는 mousedown 이벤트 (클릭 전 화재)에서 true로 설정할 수있는 부울을 추가하십시오. 그런 다음 Click 이벤트에서 부울을 지운 후 부울 및 종료 하위를 확인합니다. mousedown 부울을 설정하지 않은 경우 Enter 키를 눌러 이벤트를 트리거합니다.

관련 문제