2017-04-08 7 views
0

안녕하세요 난 C# 프로그램을 만들어 내가 텍스트 상자는 내가 여러 가지 코드를 tryed 번호를 받아 만들고 싶어하고 내가 같은 오류가 도와주세요 얻을이 내 코드C# 된 keyChar 오류

private void agetxt_Click(object sender, EventArgs e) 
    { 
     if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar)) 
     { 
      e.Handled = true; 
     } 
    } 

이며,이 오류입니다 메시지가 나타납니다

오류 CS1061 'EventArgs'에 'KeyChar'에 대한 정의가없고 확장 메서드가 없습니다 'EventArgs'유형의 첫 번째 인수를 허용하는 'KeyChar'를 찾을 수 있습니다 (사용 지시문이나 어셈블리가 누락 되었습니까? 참조?) WindowsFormsApplication1 C : \ Users \ ziadm \ Documents \ Visual Studio 2015 \ Projects \ WindowsFormsApplication1 \ WindowsFormsApplication1 \ Form2.cs 176 활성

+1

변수 e는 EventArgs 유형이고 EventArgs 클래스에는 공용 변수 KeyChar가 없습니다. getKeyChar()와 같은 함수를 호출하고 싶습니까? 또는 EventArgs의 변수 KeyChar가 공개되지 않았을 수 있습니다. –

+0

가능한 [숫자 만 허용하는 텍스트 상자를 만들려면 어떻게합니까?] (http://stackoverflow.com/questions/463299/how-do-i-make-a-textbox-that-only-accepts-numbers) –

답변

3

당신은 KeyChar 속성을 포함하지 않는 Click 이벤트를 사용하고 있습니다. TextBox에서 KeyPress 이벤트를 사용하고 KeyChar 속성을 통합하는 동일한 로직을 구현하여 입력 된 문자가 숫자인지 아닌지 확인할 수 있습니다.

public Form1() 
    { 
     InitializeComponent(); 
     agetxt.KeyPress += agetxt_KeyPress; 
    } 


    private void agetxt_KeyPress(object sender, KeyPressEventArgs e) 
    { 
     if (!char.IsDigit(e.KeyChar)) 
     { 
      e.Handled = true; 
     } 
    } 
+0

이것이 정상적으로 작동하는지, 왜 같은 오류가 발생하지 않아야합니까? –

+0

'KeyPress' 이벤트를 사용하면'KeyChar' 속성을 포함하는 KeyPressEventArgs를 사용합니다. 'EventArgs'는'KeyChar' 속성을 포함하고 있지 않습니다. 내 코드를 시도하고 번호 만 허용합니다. – Jefecito

+0

나는 당신이 EventArgs e를 KeyPressEventArgs e로 변경한다는 것을 알지 못했다. –