2009-03-13 3 views
1

MaskedTextBox에 사용자가 입력 한 문자의 유효성을 검사해야합니다. 유효한 문자는 이미 입력 한 문자에 따라 다릅니다. IsInputCharOnKeyPress을 사용하여 시도했지만, IsInputChar에 false를 반환하거나 OnKeyPress에서 e.Handled을 true로 설정했는지 여부에 관계없이 상자의 텍스트는 계속 잘못된 값으로 설정됩니다.키 누르기가 MaskedTextBox의 텍스트를 업데이트하지 못하게하려면 어떻게해야합니까?

키 누르기가 MaskedTextBox의 텍스트를 업데이트하지 못하게하려면 어떻게해야합니까?

업데이트 : MaskedTextBox가 TextBox가 아닙니다. 나는 그것이 차이를 만들어야한다고 생각하지 않지만, e.Handled이 작동해야한다고 말하는 사람들의 숫자에서 아마도 그렇게 할 것입니다.

답변

4

이렇게하면 textbox1에 'x'문자는 입력되지 않습니다.

char mychar='x'; // your particular character 
    private void textBox1_KeyPress(object sender, KeyPressEventArgs e) 
    { 
     if (e.KeyChar == mychar) 
      e.Handled = true; 
    } 

편집 : 그것은뿐만 아니라 MaskedTextBox에 작동합니다.

HTH

+0

그게 내가하고있는 일이야. 아마도 그것이 MaskedTextBox이기 때문에 아마도 작동하지 않습니다? – Simon

+0

MaskedTextBox에서도 작동합니다. 편집 됨. – NileshChauhan

+0

게시 ur 코드 야. .. :) – NileshChauhan

0

KeyPress 그것을해야한다; 그걸 이러는거야? 또는 컨트롤에서? 예를 들어 :

static void Main() { 
    TextBox tb = new TextBox(); 
    tb.KeyPress += (s, a) => 
    { 
     string txt = tb.Text; 
     if (char.IsLetterOrDigit(a.KeyChar) 
      && txt.Length > 0 && 
      a.KeyChar <= txt[txt.Length-1]) 
     { 
      a.Handled = true; 
     } 
    }; 
    Form form = new Form(); 
    form.Controls.Add(tb); 
    Application.Run(form); 
} 

가 (만 허용 "오름차순"문자)이 복사/붙여 넣기에서 당신을 보호하지 않습니다

주 - 당신의 TextChanged보고 및/또는뿐만 아니라 유효성을 검사 할 수도 있습니다.

+0

나는 그것을 통제하고있다. – Simon

관련 문제