2011-01-07 5 views
8

내 Windows Forms 응용 프로그램의 일부 컨트롤에 대한 바로 가기 키를 만들고 싶습니다.Windows Forms 응용 프로그램에서 Alt 바로 가기를 만드는 방법은 무엇입니까?

예 :

Screenshot of XYZ

공지 I 레이블 및 TextBox 컨트롤을 밑줄, F E V P B.

. 그 Alt 레이블 및 텍스트 상자에 키보드 바로 가기를 연결하고 싶습니다. 따라서 어떤 사람이 Alt + B을 누르면 연결된 텍스트 상자에 포커스가 있습니다. 이 협회를 만드는 방법이 있습니까?

답변

11

액셀러레이터 키 (&을 사용하여 설정)를 누르면 레이블에 포커스가 주어지면 레이블을 편집 할 수 없으므로 탭 순서의 다음 컨트롤로 포커스가 전달됩니다. 탭 순서에서 다음 컨트롤로 텍스트 상자가 필요합니다.

양식의 탭 순서를보고 수정하려면 IDE에서보기 + 탭 순서 명령을 사용하십시오. TabPages 또는 다른 컨테이너를 사용하면 탭 순서에 중첩 수준이 추가됩니다 (예 : 12 대신 1.1, 1.2). 레이블과 텍스트 상자가 동일한 컨테이너 내에 있으면 올바르게 설정하기가 어렵지 않습니다.

5

유형 &File 또는 &Edit이며 밑줄이 표시됩니다. 그러면 자동으로 밑줄이 그어진 문자가 Alt 바로 가기 키와 연결됩니다.

EDIT. 질문이 수정되었으므로 답변을 계속하고 싶습니다. 일부 키 조합 (Alt + F)을 붙잡고 텍스트 상자에 포커스를 설정하려고합니다.

기본 양식의 KeyDown 이벤트를 사용하여이 솔루션을 사용해 볼 수 있습니다.

private void Form1_KeyDown(object sender, KeyEventArgs e) 
    { 
     if (e.Alt && e.KeyCode == Keys.F) 
     { 
      this.textBox1.Focus(); 
     } 
    } 

는이를 달성하기 위해, 당신은 추가로 true 폼의 KeyPreview 속성을 설정해야합니다.

+0

이것은 작동하지 않습니다. 나는 TabPage 컨트롤을 사용하고 있으며 F에 "Font"라는 밑줄이 표시되도록하고 싶습니다. tagPage1의 .Text 속성을 변경하면 밑줄이 그어지지 않습니다. –

+0

글쎄, 당신이 제공 한 이미지 메뉴 스트립을 보여줍니다. TabPage의 Font (밑줄이 그어진 F)를 원한다. 그리고 Alt + F를 누른 후에 tabPage를 표시하기를 원한다. 나 맞아? – nan

+0

예, 앰퍼샌드가 TabPages에서 작동하지 않는 것 같습니다. –

0
this.KeyDown += new KeyEventHandler(Form1_KeyDown); 

void Form1_KeyDown(object sender, KeyEventArgs e) 
{ 
if (e.Alt && e.KeyCode == Keys.W) 
{ 
    btnShowConstructionCdFun(); 
} 
} 
관련 문제