시나리오에 상관없이 나는이 성가신 문제를 100 % 재현 할 수 있습니다. .Net 프로젝트, C# 또는 VB.Net을 만듭니다. 폼에 ToolStrip 컨트롤을 추가하십시오. 적어도 2 개의 메뉴 항목을 포함하는 몇 개의 간단한 DropDownButton을 생성하십시오. 원하는 다른 컨트롤, 목록 상자 (포커스를 올바르게받을 수 있도록 입력) 및 ComboBox 컨트롤을 추가하십시오. 키보드로 포커스를받을 수 있도록 바로 가기 키를 지정하거나 ToolStrip에서 TabStop을 활성화하십시오..Net Toolstrip/MenuStrip 포커스 문제
프로젝트를 실행하십시오 (디버그/릴리스, 당신이 멋진). 키보드를 사용하여 ToolStrip Focus를 탭 또는 바로 가기 키로 지정할 수 있습니다. 화살표로 하위 항목을 만듭니다. 이제 도구 상자 하위 메뉴를 축소하려면 이스케이프 키를 선택하십시오. Tab 키를 사용하여 ListBox 또는 ComboBox에 항목을 몇 개 포함합니다. 모두 괜찮아 보입니까? 이제 화살표 키를 사용하여이 컨트롤을 탐색하십시오. 깜짝! ToolStrip에 등을 대고 포커스가 있다고 생각했던 컨트롤은 그렇지 않습니다.
나는 여러 가지를 시도하여 ListBox에 포커스를두고 있습니다. 이 메뉴는 확장 한 번 것 같아 ...
ListBox.Focus();
ListBox.Select();
아무것도 성공 없었다 : 한 가지 예는 내가 (ListBox.Enter + = ...) OnEnter에 대한 이벤트 처리기를 추가하고 같은 일부 코드를 추가 할 것입니다 toolstrip 당신은 키보드를 사용하여이 컨트롤에 영원히 붙어있을 것입니다 ... 이것은 키보드 탐색만을 사용하는 시각 장애인들과 함께 작업한다는 사실 때문에 해결해야 할 중요한 문제입니다 ... 이것은 버그입니까? MFC에서 이것을 재현 할 수 없습니다 ...
어떤 제안이 있습니까?
업데이트 나는
System.Windows.Forms.MainMenu하지 않는 유일한 "도구 모음 개체"입니다 ...이 낯선를 재현하지 않는 컨트롤을 찾을 수 있었다
업데이트 ...
나는 아직도 (자신을 다른 사람에 대한 도움말 및) 일부하지만 위의에 대한 피드백을하고 싶습니다 ... 다른 사람처럼 행동이 근본적인 문제는 [ToolStripObject] .TabFocus 속성 ... 내에서 false로 설정하면 모두 정상적으로 작동하는 것처럼 보입니다 ... 포커스가있는 것처럼 보이게하는 컨트롤로 포커스를 되돌립니다. 그러나 시각 장애 사용자가 탭을 통해 모든 UI 컨트롤을 탐색 할 수 있도록하는 것이 편리한 기능입니다.이 속성이 너무 좋지 않아서이 속성이 정상적으로 작동하지 않습니다.
안녕 라스, 나는 당신의 하위 내가 이상 게시해야하는 시나리오 ToolStripMenuItem을 분류 구현입니다 ... (기본적으로에를 TabStop 필요) 실제로 도구 모음 번 더에 갇히게 종료 툴바 개체에 true로 설정된 TabStop 속성이 있는지 확인하십시오. – devHead
메뉴 항목을 닫는 것이 문제의 일부는 아니며 정상적인 시나리오에서 이스케이프 키를 누르면 잘립니다. – devHead
@Don 네, ToolStrip에 'TabStop = true'가 있습니다. 내가 설명했던 방식으로 양식을 만들었고 ToolStrip 드롭 메뉴에서 벗어나려고하면 기본적으로 화살표 키가 Tab 키처럼 작동한다는 것을 알았습니다. 게시 된 코드가 내 프로젝트의 유일한 코드이며 그것이 나를 위해 작동하게 만들었습니다. 메뉴를 닫으면 그 함수에 대해 true를 반환하면 문제가됩니다. 그래서 수동으로 숨길 수 있습니다. – LarsTech