C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.13142 の関連記事表示

<< 0 >>
■13142  KeyPressイベントが発生しないのですが・・・
□投稿者/ ジョージ -(2008/01/25(Fri) 00:26:14)

    分類:[C#] 

    テキストボックスに数字しか入力できないようにKeyPressを使って制限したいのですが
    イベントが発生しなくて困ってます。

    private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
    {
    if (e.KeyChar < '0' || e.KeyChar > '9')
    e.Handled = true;
    }

    他所でこのようなサンプルを見つけたので試してみたのですが
    どのキーを押しても反応がありません。
    KeyPreviewはTrueにしています。(falseでも変化なしでした)

    IF文の前の「{」にブレークポイントを設定して様子をみましたが
    止まることが無かったのでイベント自体発生してないようです。

    いくつかのサイトで同じようなサンプルを見かけたので
    プログラム自体は間違ってないとは思うのですが・・・
    これはサンプルに書くまでもない基本的な何かが足りないのでしょうか。
    それとももっと別のところに原因があるのでしょうか。

    色々試しては見たのですが私では解決できませんでした。
    どなたかアドバイス頂けないでしょうか。
    よろしくお願いします。

親記事 /過去ログ28より / 関連記事表示
削除チェック/

■13146  Re[1]: KeyPressイベントが発生しないのですが・・・
□投稿者/ επιστημη -(2008/01/25(Fri) 00:45:56)
>
    > テキストボックスに数字しか入力できないようにKeyPressを使って制限したいのですが
    > イベントが発生しなくて困ってます。

    再現できません。ちゃんとハンドラに飛んできます。

    > これはサンプルに書くまでもない基本的な何かが足りないのでしょうか。
    > それとももっと別のところに原因があるのでしょうか。

    ひょっとして、そのハンドラを書き加えた"だけ"じゃないでしょうね?
記事No.13142 のレス /過去ログ28より / 関連記事表示
削除チェック/

■13150  Re[1]: KeyPressイベントが発生しないのですが・・・
□投稿者/ やじゅ -(2008/01/25(Fri) 01:01:12)
>
    No13142 (ジョージ さん) に返信
    > テキストボックスに数字しか入力できないようにKeyPressを使って制限したいのですが
    > イベントが発生しなくて困ってます。
    >
    > private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
    > {
    > if (e.KeyChar < '0' || e.KeyChar > '9')
    > e.Handled = true;
    > }
    >

    これの記述はどこかにあるの?
    TextBox1.KeyPress += new KeyPressEventHandler(TextBox1_KeyPress);
    http://msdn2.microsoft.com/ja-jp/library/ms171538.aspx
記事No.13142 のレス /過去ログ28より / 関連記事表示
削除チェック/

■13214  Re[2]: KeyPressイベントが発生しないのですが・・・
□投稿者/ ジョージ -(2008/01/25(Fri) 21:10:28)
    2008/01/25(Fri) 21:11:12 編集(投稿者)

    >ひょっとして、そのハンドラを書き加えた"だけ"じゃないでしょうね?

    だけ・・・です。

    >これの記述はどこかにあるの?
    >TextBox1.KeyPress += new KeyPressEventHandler(TextBox1_KeyPress);

    Form1.Loadクラスの中に書いてありました・・・

     //KeyPress += new KeyPressEventHandler(TextBox1_KeyPress);    //要エラー原因調査。サンプルに記述なしの為必要ない?

    こんな感じで・・・
    一応参考書等で勉強した時の記憶でイベントの関連付けの場合は上記のような記述がいると思ってたのですが
    どうしてもコンパイルエラーになるためコメントアウトしてました。
    エラーが出ていたのは最初に「textBox1」が抜けてたからなんですね。

    やじゅ様のプログラムのように書き直すと無事イベントが発生して
    文字入力をはじいてくれるようになりました。

    επιστημη 様、やじゅ様、アドバイスありがとうございました。
    そしてこんな基本的な事を質問してしまい申し訳ありませんでした・・・
    (´・ω・`)もっと勉強します・・・

記事No.13142 のレス / END /過去ログ28より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -