2011-03-08 4 views
2

Windows Forms을 기반으로하는 응용 프로그램 프레임 워크를 유지 관리합니다. 명시 적으로 탭 순서를 지정할 필요가 없습니다. 컨트롤이 런타임에 추가되므로 Visual Studio가 도움이되지 않습니다.Windows Forms에서 tabindex 동작에 대한 확실한 가이드가 있습니까?

탭 순서는 특히 컨테이너가 관련되어있을 때 미스테리입니다. 런타임시 Windows Forms에서 탭 순서를 관리하는 방법을 설명하는 리소스가 있습니까?

답변

2

게시 된 답변이 올바르지 않습니다. Z 주문은 탭 순서와 관련이 없습니다. 폼에 컨트롤을 드롭하는 순서가 z 순서 및 TabIndex 속성 값을 예측 가능한 방식으로 설정한다는 것은 우연한 일치입니다. 포맷 메뉴를 사용하여 컨트롤을 앞뒤로 움직이면 바로 쾅쾅 소리가납니다. TabIndex 만 중요합니다. 직관적으로 : 재산을 달리 요구할 필요는 없습니다.

디자이너가 TabIndex 속성을 설정할 때 사용할 수없는 바로 가기가 없으면 직접 설정해야합니다. 코드를 작성해야합니다. 일반적으로 그렇게 어렵지는 않습니다. 마지막으로 사용한 값에서 순차적으로 할당하고, 탭 순서대로 컨트롤을 추가하십시오. 할당 된 TabIndex 값을 디자이너와 함께 추가 한 컨트롤 사이에 삽입해야하는 경우 간격을 유지하십시오.

+0

groupbox 나 panel과 같은 컨테이너는 탭 순서와 어떻게 상호 작용합니까? Tabindex도 설정해야합니까? 또는 (양식 내에서) 탭이 최저에서 최고로 순차적으로 진행됩니까? 지금까지 대답 해 주셔서 감사합니다! –

+0

컨테이너에는 다른 컨트롤과 마찬가지로 TabIndex가 있습니다. 포커스가 확보되면 컨테이너 안의 컨트롤간에 탭 이동이 이루어집니다. 마지막 탭에 도달 할 때까지 다음 Tab 키를 누르면 부모 탭으로 돌아갑니다. 이러한 컨트롤의 TabIndex 번호 매기기는 0에서 다시 시작됩니다. 통찰력을 위해 Control.SelectNextControl() 메서드의 인수를 확인하십시오. 일반적으로 모두 true로 설정됩니다. –

1

MSDN에는 definitive guide이 있다고 가정합니다.

또한 중요 : UpdateZOrder은 의견에서 @jswolf19으로 지적되었습니다.

+1

Plus [UpdateZOrder] (http://msdn.microsoft.com/en-us/library/system.windows.forms.control.updatezorder.aspx) 및 필요한 모든 사항을 알고 있어야합니다. – jswolf19

+0

@jswolf : 고마워. 편집 할게. –

+0

그건 확실한 가이드는 아니야. (MSDN은 그런 일을 할 수도 있지만, 추가 논의가없는 빈약 한 의사는 그렇지 않습니다.) – clweeks

0

탭 색인은 사물이 생성 된 순서대로 설정됩니다. 하지만 어쨌든 런타임시 탭 인덱스를 지정할 수 있으므로 원하는 동작을 얻는데 아무런 문제가 없어야합니다.