アプリ版:「スタンプのみでお礼する」機能のリリースについて

開発環境 : WindowsXP
      office2003
言語   : VB.NET

.NET初心者です。ご存知の方がおりましたらご教示御願いします。

今、ラジオボタンを10個と、
テキストボックスのコントロールを2個(AとB)置いた画面をつくっています。
ラジオボタンは1つしか選択できません。

分からないことは、
その内のラジオボタン5個はAのテキストボックスにのみ使用する、
残りのラジオボタン5個はBのテキストボックスにのみ使用する場合の
制御方法です。

一応、1つのラジオボタンに対して、1つのイベントを発生させるような形で制御はできているのですが、
もっと、効率的な書き方はないでしょうか。
(グループ化するとか?)


どうぞよろしくお願い致します。

A 回答 (2件)

イベントハンドラは


Private Sub HandlerMethod(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ☆
上記の☆のところにイベントを捕らえるコントロール名とイベント名が入ります。

略) Handles RadioButton1.CheckedChanged, RadioButton2.CheckedChanged
のようにカンマで連結すれば、複数のコントロールをひとつのイベントハンドラで処理することができます。実際にイベントを発生させたコントロールはsenderで判別できます。

手作業でこれを追加してもできますが、フォームデザイナからであれば次の手順で行って下さい。

1. イベントハンドラをまとめるコントロールを選択
(今回の場合はラジオボタン5つ)
2. プロパティウィンドウの稲妻マークをクリック(イベント一覧に変わります)
3. CheckedChangedの欄にイベントハンドラ名(名前は任意。例:RadioChanged)を記入し、Enterキー

これで、複数選択したコントロールをひとつのイベントハンドラで受け取るコードが自動的に生成されます。

※当方VB2005環境で確認しているので、VB.NETが同じかどうかまでは不明です。

この回答への補足

ご回答ありがとうございました。
早速試したところ、イベントハンドルをまとめることが可能になりました。

もしよろしければ、もうひとつ教えていただきたいのですが、
CheckedChangedとClickだと、ラジオボタンを選択したときの動きが違いました。
CheckedChangedだと既に選択されているものを、
もう一度指定してから、選択後のボタンの動きに入るようなのです。

単純に「他のボタンを選択したら、コントロールの制御を変更する場合」は、どちらを使用するのが、正しいのでしょうか。

できれば、余計な動きはさせたくないと思っています。

どうぞご教示よろしくお願い致します。

補足日時:2009/11/16 10:09
    • good
    • 1

ClickイベントはボタンがONになった時に発生し、


CheckedChangedイベントはON/OFFが切り替わったときに発生します。

ですので、Clickイベントでは「どのボタンがOFFになったか」は分かりません。それで支障がなければClickでよいと思います。
    • good
    • 2
この回答へのお礼

理解できました!
ご丁寧にありがとうございました!

お礼日時:2009/11/16 22:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています