- ベストアンサー
tagの値
ボタン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です。
- みんなの回答 (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
その他の回答 (3)
- tsukasa-12r
- ベストアンサー率65% (358/549)
#2 さんのおっしゃる方向性だとすると、 コマンドボタンをコントロール配列にすればいいんじゃないかと思ったのですが・・・。 コントロール配列にするには、コントロールの名前を同じにして Index プロパティに数字をセットしていけばOKです。
補足
ご回答・アドバイス等ありがとうございます。
- imogasi
- ベストアンサー率27% (4737/17069)
VB.NETは勉強不足ですが,察するに、イベントを捉えられるコントロール類(通常は同種)が沢山(集合)あって、その中のどれがクリックされたかの情報がシステムから返してもらえれば(判れば)、コーディング経済上スッキリすると言うことでしょう。私もかって夢想しました。 今はボタンの数だけ記述しておかないといけない。 (架空言語)BTNはCommandButtonの略とします。 SET ボタン類 AS BTN1,BTN2,BTN3,BTN4・・・で定義。 sub ボタン類_CLICK(NO as INTEGER) 押されたボタンを 通知してくれる。 Label1.Text=ボタン類(NO).tag その押されたボタンの 情報を変数へ代入。 End Sub しかしこの考えは、VBには無く、VB.NETにも無いでしょう。お詳しい方よろしく。
- taka_tetsu
- ベストアンサー率65% (1020/1553)
>だと、なぜかフォームのtagの値が入ってしまいます。 そりゃそうでしょう。 >だとソースが長くなってしまいます。 どこが長いのですか? そう書かないといけないものだと思うのですが。
補足
どこが長いのですか? > ボタンが他にもあるからです。 長いと言うより、ボタン1つ1つに入れるのが面倒だからです ご回答・アドバイス等ありがとうございます。
お礼
ご回答・アドバイス等ありがとうございます。 解決しました。