2017-12-09 3 views
0

나는 C# 윈도우 폼 응용 프로그램을 사용하고 있습니다. 나는 이미이 쿼리를 인터넷에서 많은 예제를 시도했지만 아무것도 나를 위해 작동합니다. 나는 단지 Enter 키의 동작을 Window Forms의 Tab 키로 대체하려고합니다. keydown 또는 up 이벤트를 텍스트 상자에 하나씩 적용하고 싶지 않습니다. 나는 창문 형태로 적용 할 수있는 하나의 이벤트 만 원한다.Enter 키를 Tab 키의 기본 키로 만드는 방법 Window Form C#의 모든 텍스트 상자를 변경 하시겠습니까?

감사합니다.

+0

Form_KeyPress 이벤트에서 작동하지 않습니다. 방금 아무 소리도 들리지 않습니다. –

+0

https://stackoverflow.com/a/47680960/17034 –

답변

0

이제는 양식의 keyup 이벤트에이 코드를 사용하고 KeyPreview 속성을 True로 설정합니다.

public class MyTextBox : TextBox 
{ 
    protected override void OnKeyDown(KeyEventArgs e) 
    { 
     if (e.KeyCode == Keys.Enter) 
     { 
      Parent.SelectNextControl(this, true, true, true, true); 
      e.Handled = true; 
      e.SuppressKeyPress = true; // suppress Ding sound 
     } 
     base.OnKeyDown(e); 
    } 
} 

코드를 컴파일

if (e.KeyData == System.Windows.Forms.Keys.Enter) 
     { 
      SendKeys.Send("{TAB}"); 
     } 
+0

'KeyPreview'로 인해 양식에서 단추와 같은 이벤트를 가로 챌 수 있습니다. 이는 바람직하지 않습니다. 그리고'SendKeys.Send' 메소드는 다른 애플리케이션에 메시지를 보낼 수 있습니다. 어느 것이 또한 바람직하지 않습니다. –

0

는 사용자 정의 TextBox을 만듭니다. 이 구성 요소는 툴바에 나타납니다. 일반 텍스트 상자 대신 사용하십시오.

관련 문제