Ответ 1
Вы должны отдать отправителя ожидаемому типу объекта.
Dim btn As Button = CType(sender, Button)
Затем вы можете получить доступ к тем, что вам нужно.
У меня есть событие в 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. Ни один из них не работает
Вы должны отдать отправителя ожидаемому типу объекта.
Dim btn As Button = CType(sender, Button)
Затем вы можете получить доступ к тем, что вам нужно.
Попробуйте 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
Еще проще:
Если отправитель btnAnswer1, то...