プロが教えるわが家の防犯対策術!

ボタン1を押すと変数に1を
ボタン2を押すと変数に2を・・・
という具合にしたいのですが、いろいろしてみましたが、分かりません。分かる方教えてくだい。
(tagには値を入れてあります。)


Button1_Click、Button2.Click~
Label1.Text = Tag



Button1_Click、Button2.Click~
Label1.Text = Me.Tag



だと、なぜかフォームのtagの値が入ってしまいます。


Button1_Click~
Label1.Text = Button1.Tag

Button2.Click~
Label1.Text = Button2.Tag

だとソースが長くなってしまいます。

ちなみにVB.NETです。

A 回答 (4件)

えと、VB.Netにはコントロール配列はありません。



こんな感じに書けばいいですね。

Private Sub Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
 Handles Button1.Click, Button2.Click, Button3.Click, Button4.Click

  MsgBox(sender.tag)

End Sub
    • good
    • 0
この回答へのお礼

ご回答・アドバイス等ありがとうございます。
解決しました。

お礼日時:2004/02/17 01:15

#2 さんのおっしゃる方向性だとすると、


コマンドボタンをコントロール配列にすればいいんじゃないかと思ったのですが・・・。
コントロール配列にするには、コントロールの名前を同じにして Index プロパティに数字をセットしていけばOKです。

この回答への補足

 ご回答・アドバイス等ありがとうございます。

補足日時:2004/02/17 00:56
    • good
    • 0

VB.NETは勉強不足ですが,察するに、イベントを捉えられるコントロール類(通常は同種)が沢山(集合)あって、その中のどれがクリックされたかの情報がシステムから返してもらえれば(判れば)、コーディング経済上スッキリすると言うことでしょう。

私もかって夢想しました。
今はボタンの数だけ記述しておかないといけない。
(架空言語)BTNはCommandButtonの略とします。
SET ボタン類 AS BTN1,BTN2,BTN3,BTN4・・・で定義。
sub ボタン類_CLICK(NO as INTEGER) 押されたボタンを
                  通知してくれる。
Label1.Text=ボタン類(NO).tag その押されたボタンの
                情報を変数へ代入。
End Sub
しかしこの考えは、VBには無く、VB.NETにも無いでしょう。お詳しい方よろしく。
    • good
    • 0

>だと、なぜかフォームのtagの値が入ってしまいます。



そりゃそうでしょう。

>だとソースが長くなってしまいます。

どこが長いのですか?
そう書かないといけないものだと思うのですが。

この回答への補足

どこが長いのですか? >
ボタンが他にもあるからです。
長いと言うより、ボタン1つ1つに入れるのが面倒だからです

ご回答・アドバイス等ありがとうございます。

補足日時:2004/02/16 22:57
    • good
    • 0

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