2012-01-18 1 views
0

C#의 TextBox 구성 요소에서 클래스를 확장하고 "On [Event]"메서드를 재정 의하여 텍스트 상자에 입력 한 내용을 확인하고 텍스트 상자에 입력 할 일부 키를 건너 뛰기를 원합니다.C#에서 텍스트 상자의 입력을 건너 뛰는 방법은 무엇입니까?

public class NumText : TextBox 
    { 
     protected override void OnKeyDown(KeyEventArgs e) 
     { 
       if (e.KeyValue >= 48 && e.KeyValue <= 57) 
        base.OnKeyDown(e); 
     } 
    } 
+1

이것은 사용하는 UI 프레임 워크 (WPF, Silverlight, WinForms, ...) 및 때로는 버전에 따라 다릅니다. – Nuffin

답변

1

그냥 이벤트를 무시하지 말고 여러 개의 키를 누르지 않도록하려면 이벤트를 추가하십시오.

this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this_onKeyPress); 

private void this_onKeyPress(object sender, KeyPressEventArgs e) 
{ 
    if (e.KeyValue >= 48 && e.KeyValue <= 57) 
     e.Handled = true; 
} 
1

사용 KeyEventArgs.Handled 속성 : 나는 (! 다음 코드는 해결책이 아니다) 이런 식으로 뭔가를 검색 해요. MSDN 문서에

인용구 :

컨트롤의 기본 처리를 우회하는 경우는 true 그렇지 않은 경우 의 false는 이벤트를 기본 제어 처리기로 전달합니다.

관련 문제