- PR -

複数のTextBoxオブジェクトのイベント

1
投稿者投稿内容
にゃんぎ
常連さん
会議室デビュー日: 2004/03/31
投稿数: 35
投稿日時: 2004-04-13 12:47
いつもお世話になってます。

早速質問させてください。
複数のTextBoxオブジェクトを持つフォームがあります。

この複数のオブジェクト全てに同じ内容のKeyPressイベントを持たせる場合、一つずつ書いていくしかないのでしょうか。

それとも一括で定義できる記述方法がありますでしょうか。
ご存知の方ご教授下さい。

また、このような初歩的な内容を取り扱いHPなどありましたら教えてください。
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-04-13 13:02
諸農です。

C#/VS.NET or C#Builderであるなら、1つのイベントハンドラを記述してから、
残りのTextBoxコントロールクラスを選択状態にしてから、
オブジェクトプロパティのイベントハンドラタブで先に記述した
イベントハンドラメソッドを指定するだけです。

ほかにもコードで設定するする方法があります。

textBox1.KeyPress += KeyPressEventHandler(MyMethod);

のような感じです。

VB.NETの場合は、Handles(?)とか使うのかしら。
ちょっとよく分かりません。

引用:

また、このような初歩的な内容を取り扱いHPなどありましたら教えてください。



掲載されているHPはあまり知りませんが、入門書やTips書などを見ると
書かれていると思います。。


_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2004-04-13 13:13
>この複数のオブジェクト全てに同じ内容のKeyPressイベントを持たせる場合

というのは、表現としては適切ではありませんね。
.NETではイベントという概念が存在します。これはいわゆる一般的な名詞のイベントではなくて、クラス等のメンバの一種のことです。
詳しくはMSDNライブラリで「イベント」や「デリゲート」あたりを調べてみてください。

で、にゃんぎさんの投稿から読み取るに、おそらく複数のテキストボックスのKeyPressイベントが発生した時に同じ仕事をするため、同じメソッドを呼び出したいということですよね。
例えばTextBox_KeyPress()メソッドを呼んでほしいとすれば、

textBox1.KeyPress += new KeyPressEventHandler(TextBox_KeyPress);
textBox2.KeyPress += new KeyPressEventHandler(TextBox_KeyPress);
textBox3.KeyPress += new KeyPressEventHandler(TextBox_KeyPress);
textBox4.KeyPress += new KeyPressEventHandler(TextBox_KeyPress);

こんな感じで複数のテキストボックスのKeyPressイベントに同じメソッドを追加すればOKです。
TextBox_KeyPress()が呼ばれた場合は、第一引数のsenderでどのテキストボックスでイベントが発生したのか判ります。
にゃんぎ
常連さん
会議室デビュー日: 2004/03/31
投稿数: 35
投稿日時: 2004-04-13 13:21
な、なるほど!!

大変よくわかりました。
ありがとうございました。

やりたかった事はエンター押下でフォーカス移動です。
早速やってみます。
お二方本当にありがとうございました!
1

スキルアップ/キャリアアップ(JOB@IT)