2017-04-08 53 views
0

こんにちは、誰もが、これは私のコード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'が見つかりませんでした(usingディレクティブまたはアセンブリ参照?)WindowsFormsApplication1 C:\ Users \ ziadm \ Documents \ Visual Studio 2015 \ Projects \ WindowsFormsApplication1 \ WindowsFormsApplication1 \ 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

にForm2.csあなたはKeyCharプロパティが含まれていませんClickイベントを使用しています。 TextBoxKeyPressイベントを使用し、入力された文字が数字かどうかを確認できるように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に変更したことに気付かなかった。 –