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

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

C# と VB.NET の入門サイト

Re[2]: KeyPressイベントが発生しないのですが・・・


(過去ログ 28 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■13142 / inTopicNo.1)  KeyPressイベントが発生しないのですが・・・
  
□投稿者/ ジョージ (1回)-(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文の前の「{」にブレークポイントを設定して様子をみましたが
止まることが無かったのでイベント自体発生してないようです。

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

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


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

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

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

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

引用返信 編集キー/
■13150 / inTopicNo.3)  Re[1]: KeyPressイベントが発生しないのですが・・・
□投稿者/ やじゅ (42回)-(2008/01/25(Fri) 01:01:12)
やじゅ さんの Web サイト
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
引用返信 編集キー/
■13214 / inTopicNo.4)  Re[2]: KeyPressイベントが発生しないのですが・・・
□投稿者/ ジョージ (2回)-(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」が抜けてたからなんですね。

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

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


解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -