Получите идентификатор/имя кнопки в событии клика. VB.NET

У меня есть событие в VB.NET, чтобы обрабатывать сразу несколько кликов. Мне нужно знать, какая кнопка из этого выбора началась. Есть идеи, как это сделать? Мой код ниже:

Private Sub Answer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAnswer1.Click, btnAnswer2.Click, btnAnswer3.Click, btnAnswer4.Click
    'output button ID that caused event
End Sub

Я пробовал sender.Id, e.Id, sender.name, e.name. Ни один из них не работает

Ответ 1

Вы должны отдать отправителя ожидаемому типу объекта.

 Dim btn As Button = CType(sender, Button)

Затем вы можете получить доступ к тем, что вам нужно.

Ответ 2

Попробуйте CType(Sender, Button).Name. Отправитель - это объект, который вам нужно передать в вызывающий тип в этом случае. Если вам нужно больше свойств от Отправителя, используйте ответ U1199880. Но обычно, когда я пытаюсь обрабатывать несколько кликов, я использую свойство Tag, присваиваю ему индекс. Что-то вроде этого.

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click, Button2.Click, Button3.Click
    Dim index As Integer
    If Not Integer.TryParse(CType(sender, Button).Tag.ToString, index) Then Exit Sub

    Select Case index
        Case 0

        Case 1

        Case 2
            ....
    End Select

End Sub

Ответ 3

Еще проще:

Если отправитель btnAnswer1, то...