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

メソッド「ボタンクリック」からコントロールを取得したいです。 
または、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

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

A 回答 (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で同じイベントをやりたい、けどボタン名毎に処理を変えたいとかなら『イベントハンドラの共有』で調べてみると見つかるかもです。
やりたい事の詳細が分かりやすければ回答もつくかもですけど。
    • good
    • 0
この回答へのお礼

DirectCast(sender, Button).Nameを教えていただき、別のやりたいことの解決になりました。
大変助かりました。ありがとうございました。

お礼日時:2019/12/13 08:18

そもそも、「名前」が必要なのでしょうか?



この場合だと、 #1にある方法でsenderから Button 型変数buttonに入れたあとで
If button.FlatStyle = FlatStyle.Standard Then
button.FlatStyle = FlatStyle.Popup
Else
button.FlatStyle = FlatStyle.Standard
End If
と、いうようにできます。
    • good
    • 0
この回答へのお礼

すみません名前は不要でした。
変数をして扱いたかったです。
丁寧にありがとうございました。

お礼日時:2019/12/13 08:20

オブジェクトを取得するなら、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で取得できるので
各オブジェクトプロパティで処理を分ける事が出来ます。

回答になりますでしょうか?
    • good
    • 0
この回答へのお礼

CType(sender, Button)を教えていただき解決できました。
みなさんすごいです。
ありがとうございます。

お礼日時:2019/12/13 08:17

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

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


このQ&Aを見た人がよく見るQ&A