2013-08-27 2 views
2

У меня есть несколько меток все кодированные как таковой:как я поднимаю событие щелчка для метки

Public assessment_menu_button As New Label 
Public current_label_clicked As New Label 

AddHandler assessment_menu_button.Click, AddressOf click_assessment_menu_button 

Private Sub click_assessment_menu_button(ByVal sender As System.Object, 
             ByVal e As System.EventArgs) 
    current_label_clicked = sender 
    ' do some other stuff 
End Sub 

Затем, позже в моей программе, у меня есть Sub, который нужно выполнить щелкните на том, какой ярлык был помещен в current_label_clicked, и на нем нажимается событие клика. Что-то вроде

Private Sub whatever() 
    current_label_clicked.performClick() 
End Sub 

но вы не можете сделать это с помощью ярлыков.

Как я могу поднять событие click для метки?

Спасибо.

ответ

4

Предположим, что ваш лейбл называется Label1.

Этот Sub является Sub, который будет выполнен, когда вы нажмете на этикетке.

Private Sub Label1_Click(sender As Object, e As EventArgs) Handles Label1.Click 

End Sub 

Чтобы поднять щелчок на ярлыке, вам просто нужно вызвать это событие.

Label1_Click(Label1, Nothing) 

Вот это :)

+0

Спасибо за информацию, но у меня есть несколько кнопок, и я не требуется отдельная функция для каждой кнопки. Я пытаюсь использовать одну функцию для всех меток и одну переменную, чтобы ссылаться на ту, которая была нажата. Когда вызывается подпрограмма «click», просто используйте любую метку, на которую ссылается эта переменная, и выполните для нее событие click. – user2721815

+0

Это будет работать, если я смогу использовать «...». Отправляет sender.Click », но это дает мне ошибку. – user2721815

+0

Если у вас есть 3 метки Label1, Label2 и Label3, вы можете создать функцию, которая обрабатывает щелчок по всем этим меткам. 'Private Sub Label_Click (отправитель как объект, e As EventArgs) Ручки Label1.Click, Label2.Click, Label3.Click 'что-то здесь End Sub' –

1

Это считается дурным тоном для вызова метода обработчика событий непосредственно. Поместите код вам необходимо позвонить, когда метка щелкнула в метод и вызывать этот метод как из обработчика этикетки мыши и любого метода:

Private Sub click_assessment_menu_button(ByVal sender As System.Object, ByVal e As System.EventArgs) 
    runLabelCode(sender) 

    'other code here 
End Sub 

Private Sub runLabelCode(sender As Label) 
    current_label_clicked = sender 

    'other code here 
End Sub 

'elsewhere in the code 
Private Sub Whatever() 
    runLabelCode(Label1, Nothing) 
End Sub