양식을 보여주고 싶지만 컨트롤에 초점을 맞추고 싶지 않습니다. 예를 들어, 지금 양식이 표시되면 tabindex가 0 인 버튼이 초점을 맞 춥니 다. 버튼이 아닌 폼 자체가 집중되기를 바랍니다. 사용자가 우연히 키를 친다면 아무 것도하지 않을 것입니다. 이것이 가능한가? 감사!어떤 컨트롤도 집중하지 않고 양식을 표시하려면 어떻게해야합니까?
답변
양식에 처음으로 '취소'버튼과 같이 비교적 무해한 곳에 초점을 두어야합니다.
나는 testet을 가지고있다.
private void Form1_Shown(object sender, EventArgs e)
{
textBox1.TabStop = false;
textBox1.Focus();
textBox1.Left = -300;
}
이렇게하면 보이는 영역 밖으로 이동하여 포커스가있는 텍스트 상자를 "숨 깁니다". 이 해킹 방법으로 텍스트 상자에 초점을 맞출 수 있습니다.
[편집] 이것은 (분명히) 당신의 양식에 다른 용도로 사용되지 않는 textBox1이라는 텍스트 상자가 있어야합니다.
아니요. 해결 방법이 있습니다. 양식 (예 : 텍스트 상자)에 숨김 된 컨트롤을 추가하고 Form_Shown 또는 Form_Load 이벤트에서
을 입력하십시오.
각 컨트롤에 대해 TabStop 속성을 false로 설정할 수 있지만 컨트롤을 탭으로 이동할 수는 없습니다. 그것은 좋은 해결책 일 수도 있고 아닐 수도 있지만 사용자가 클릭 할 때까지 입력을받지 못하게해야합니다.
MyInvisibleLabel.Select();
_Load
또는 가능한 경우 종료/취소/닫기 버튼에 초점을 맞출 수 있습니다.
시도해보십시오. Panel
컨트롤을 양식에 추가하고 기본 설정을 유지하십시오. 패널은 어떤 크기로도 배치 할 수 있으며 어느 위치 에나 배치 할 수 있습니다. 이 회원은 m_panel
이라고 부를 것입니다. 생성자에서 양식의 ActiveControl
속성을 m_panel
으로 설정하십시오. 마지막으로 패널의 TabStop
속성이 false
(기본적으로 설정 됨)으로 설정되어 있는지 확인하십시오.
폼이로드되면 m_panel
이 포커스를 얻습니다. 그러나 패널에는 테두리가 없으며 양식 배경과 동일한 색을 사용하기 때문에 존재 여부가 표시되지 않으므로 원하는대로 양식 자체에 포커스가 있다고 효과적으로 말할 수 있습니다. 사용자가 처음 Tab을 누르거나 컨트롤에서 클릭하면 패널에 방정식이 없어집니다 (TabStop
은 false
). 정상적으로 작동합니다.
참고 : 오히려 자신에게 맞는 어떤 Panel
,보다 빈 Label
를 사용할 수 있습니다. 기존 레이블 중 하나를 사용할 수도 있습니다. 관심 컨트롤을 지정하려면 ActiveControl
을 사용하거나 자동으로 포커스를 얻지 않으므로 Focus
을 호출하여 명시 적으로 포커스를 지정해야합니다.
페이지를로드하는 동안 레이블을 포커스로 설정하면 작동하지 않습니다.
텍스트 상자 대신 초점을 지정하려는 레이블로 페이지의 활성 컨트롤을 설정해야합니다.
예는 : 가장 간단한 해결책은
입니다 this.ActiveControl = lbltest;
:
protected override void OnShown(EventArgs e)
{
base.OnShown(e);
ActiveControl = null;
}
또한, 모든 컨트롤을 채우기 위해 도킹 패널 내부에 있다면, 당신은 패널 집중할 수 :
protected override void OnShown(EventArgs e)
{
base.OnShown(e);
pnlMain.Focus();
}
을 두 방법 중 하나를 사용하면 탭 키를 눌러 첫 번째 컨트롤을 탭 순서대로 맞 춥니 다.
- 1. 사용자가 클릭하지 않고 오버레이를 표시하려면 어떻게해야합니까?
- 2. SeleniumRC를 집중하지 않고 Firefox 창을 열려면 어떻게합니까?
- 3. 보조 모니터에 양식을 표시하려면 어떻게합니까?
- 4. div에 Colorbox를 표시하려면 어떻게해야합니까?
- 5. GridView 셀이 RowCommand 이벤트에 어떤 컨트롤도 등록하지 않음
- 6. 보석으로 업데이트를 표시하려면 어떻게해야합니까?
- 7. ASP.NET MVC2 양식을 제출하기위한 링크가 아닌 링크를 표시하려면 어떻게해야합니까?
- 8. 장고, 양식을 다시 열지 않고 양식을 업데이트하려고합니다.
- 9. 외부 페이지를 변경하지 않고 iframe 내부에 html 양식을 제출하려면 어떻게해야합니까?
- 10. Django에서 루핑하지 않고 Message Framework를 사용하여 메시지를 표시하려면 어떻게해야합니까?
- 11. cakephp를 사용하여 각 루프를 사용하지 않고 일련의 데이터를 표시하려면 어떻게해야합니까?
- 12. ExtJs 3.3.1에서 EditorGrid를 클릭하지 않고 ComboBox 드롭 다운을 표시하려면 어떻게해야합니까?
- 13. 데이터베이스를 사용하지 않고 한 번만 확인 추적 코드를 표시하려면 어떻게해야합니까?
- 14. UIWebView를 사용하지 않고 lable에서 단일 문자를 굵게 표시하려면 어떻게해야합니까?
- 15. MapAnnotation 핀을 사용하지 않고 위치 정보를 표시하려면 어떻게해야합니까?
- 16. 어떤 종류의 오버레이를 사용하여 Google 어스에서 자막을 표시하려면 어떻게해야합니까?
- 17. 줌라에 모듈을 표시하려면 어떻게해야합니까?
- 18. 루비에 googlechart를 표시하려면 어떻게해야합니까?
- 19. 뷰백을 html로 표시하려면 어떻게해야합니까?
- 20. 양식을 제출하지 않고 루비를 사용하여 양식 요소 값에 액세스하려면 어떻게해야합니까?
- 21. jQuery ScrollBar - 집중하지 않습니까?
- 22. /static/index에/users/new를 표시하려면 어떻게해야합니까?
- 23. Silverlight가 데이터 격자에 집중하지 않도록하십시오.
- 24. PHP 파일을 제대로 표시하려면 어떻게해야합니까?
- 25. Team Server에서 체크 아웃하지 않고 양식을 작성하려면 어떻게해야합니까?
- 26. 정적 양식을 사용하지 않고 다른 양식으로 정보를 전송하려면 어떻게해야합니까?
- 27. 양식을 제출하여이 페이지에 정보를 보내지 않고 $ _POST 정보를 얻으려면 어떻게해야합니까?
- 28. watir : 양식을 watir로 제출하지 않고 양식에 값을 입력하려면 어떻게해야합니까?
- 29. Wicket : 기존 입력을 잃지 않고 현재 양식을 다시 렌더링하려면 어떻게해야합니까?
- 30. 파일 확장자없이 짧은 URL을 표시하려면 어떻게해야합니까?
그래,하지만 포커스가 때로는 볼 수없는 곳으로 점차 이동하기 때문에 탭 키로 많이 돌아 다니는 사용자에게는 약간 혼란 스러울 수 있음을 알아 두십시오. 숨겨진 컨트롤의 tabindex를 올바르게 설정했는지 확인하십시오. –
분명히 TextBox1.TabStop = false를 설정하는 것이 좋습니다. – vaitrafra
이 해결 방법을 시도했지만 작동하지 않는 것 같습니다. 포커스가 taborder의 첫 번째 보이는 컨트롤로 되돌아가는 것 같습니다. – LaustN