
メソッド「ボタンクリック」からコントロールを取得したいです。
または、Button1、Button2のようにNameで数字が増えていくのでコントロールの数字部分(1.2・・・)を変数として設定できないか教えて欲しいです。
例
メソッド「Button1_Click」からコントロール「Button1」を取得したい。
やってみたこと
メッソド名を取得して、「_Click」を除外してstring形式にした。
stringはButtonに変換できませんとでた。
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'メソッド名を取得する
Dim methodName As String = System.Reflection.MethodBase.GetCurrentMethod().Name
'メソッド名から"_Click"を除く
Dim BtnName As String = methodName.Replace("_Click", "")
’この↓のButton1をBtnNameに置き換えたいです。
If Button1.FlatStyle = FlatStyle.Standard Then
Button1.FlatStyle = FlatStyle.Popup
Else
Button1.FlatStyle = FlatStyle.Standard
End If
End Sub
どうぞよろしくお願いします。
No.1ベストアンサー
- 回答日時:
オブジェクトを取得するなら、senderにトリガーとなったオブジェクトがセットされているので
オブジェクトをsenderから取り出せばよいかと、.Nameで名前が取り出せます。
Private Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click
Dim button = CType(sender, Button)
Debug.Print(button.Name)
End Sub
また、Private Sub Button_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click,,,,,
Button_ClickとしてHandlesにボタンを列挙すれば、トリガーオブジェクトをsenderで取得できるので
各オブジェクトプロパティで処理を分ける事が出来ます。
回答になりますでしょうか?
No.3
- 回答日時:
イベントからコントロール名を得るなら、
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MsgBox(DirectCast(sender, Button).Name)
End Sub
これでも得られると思いますけど、『’この↓のButton1をBtnNameに置き換えたいです。』の部分の意味がわからなかった。
どうして置き換えたいのかによって違ってくるのでは?
複数のButtonで同じイベントをやりたい、けどボタン名毎に処理を変えたいとかなら『イベントハンドラの共有』で調べてみると見つかるかもです。
やりたい事の詳細が分かりやすければ回答もつくかもですけど。
DirectCast(sender, Button).Nameを教えていただき、別のやりたいことの解決になりました。
大変助かりました。ありがとうございました。
No.2
- 回答日時:
そもそも、「名前」が必要なのでしょうか?
この場合だと、 #1にある方法でsenderから Button 型変数buttonに入れたあとで
If button.FlatStyle = FlatStyle.Standard Then
button.FlatStyle = FlatStyle.Popup
Else
button.FlatStyle = FlatStyle.Standard
End If
と、いうようにできます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
vb.netで画面のコントロールId名を変数で動的に制御し処理する方法
Visual Basic(VBA)
-
[VB.net] ボタン(Flat)のEnable時の背景色について
Visual Basic(VBA)
-
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
-
4
CloseとDisposeの違い
Visual Basic(VBA)
-
5
VB.NETで小数点以下の桁数を取得したい
その他(ソフトウェア)
-
6
Groupboxの配下のコントロール名を確認したい(その逆も有り)
Visual Basic(VBA)
-
7
VB.NETでフォーム上にExcelのような表を表示する方法
Visual Basic(VBA)
-
8
String"から型'Double'への変換は無効です。 とエラーが出ます。
Visual Basic(VBA)
-
9
Designer.vbは直接コードをいじってはだめ?
Visual Basic(VBA)
-
10
複数のtextboxの処理を一括で行えませんか?
Visual Basic(VBA)
-
11
DataGridViewの、選択されている行を取り出したい
Visual Basic(VBA)
-
12
文字列の後ろから必要分だけ削除したい。
Visual Basic(VBA)
-
13
VB.NET2005 TextBox 高さ(Height) 変更
Visual Basic(VBA)
-
14
VB.NETのテキストボックスの書式指定
Visual Basic(VBA)
-
15
VB.NET getとsetの概念がわかりません。
Visual Basic(VBA)
-
16
2次元動的配列の第一引数のみを可変にする
Visual Basic(VBA)
-
17
上下の位置揃えについて
Visual Basic(VBA)
-
18
VBの画面サイズについて
Visual Basic(VBA)
-
19
TextBoxでEnterキーを押すと、にあるButtonを押したのと同じ効果を出す方法
Visual Basic(VBA)
-
20
データグリッドビューの一番最初の行に列を追加したい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
サーブレットコンテキストの意...
-
servletからjspへオブジェクト...
-
エクセルVBA 画像を貼り付ける...
-
VB.netでメソッドからコントロ...
-
Excel VBA 定数にオブジェクト...
-
Calendarクラスでエラーがでる
-
Vba ListViewの行挿入に関して...
-
SendKeysとExecWBの違いは?
-
getParameter()について
-
vectorの内容をString型に変換...
-
Javaでブラウザ判定
-
PrintFormを使用してのプリント
-
Excel 2007 <VBAでグラフの操作...
-
VBAでの[]
-
ピクチャーボックスに点を打つ...
-
GridViewに行追加するには?
-
VBS でのソート処理Excel2003
-
「タイプ初期化子が例外をスロ...
-
エクセルVBAで、条件に一致する...
-
変数名の付け方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
servletからjspへオブジェクト...
-
サーブレットコンテキストの意...
-
エクセルVBA 画像を貼り付ける...
-
Excel VBA 定数にオブジェクト...
-
VB.netでメソッドからコントロ...
-
VBAでの[]
-
System.Collections.SortedList
-
JSPでのArrayListの表示につい...
-
C#で親にイベントを投げる方法
-
C#のクラスで値渡しをする
-
VB.NETでのnothing の意義について
-
Vba ListViewの行挿入に関して...
-
String型からlong型への変換は...
-
javaで、、、
-
MessageBox.Show(Me,…の「Me」...
-
getParameter()について
-
ピクチャーボックスに点を打つ...
-
VB2005でADDとINSERTの違いは?
-
singletonクラスとは???
-
LiveConnectって?
おすすめ情報