2010-03-07 3 views
1

кажется, что добавление, например, кнопки Dim myButton as New Button, а затем addHandler в mySub("lol", 255) невозможно.Создайте динамический элемент управления и AddHandle WITH Значения/Скобки

Где mySub является Shared Sub MySub(byRef myString as string, myInteger as Integer)

Итак: addHandler myButton.click, addressOf mySub("lol", 255) - возвращает ошибку говоря, что это не работает со скобками или любой другой.

Я как-то понимаю, почему это может быть невозможно, поэтому я ищу работу по этой проблеме.

Пожалуйста, помогите _jakeCake

ответ

2

Прежде всего синтаксиса AddHandler будет:

AddHandler myButton.click, AddressOf mySub 

Во-вторых, подпись процедуры EventHandler должна соответствовать подписи события следующим образом:

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

    [...] 

End Sub 
+0

Мне сложно объяснить это. Позвольте мне просто написать именно мой случай, а не пример Я сделал свой собственный скрипт. Сначала он создает элемент управления, скажем, панель, мой код назначает цвет фона, шрифт и т. Д. Код также может заставить элемент управления выполнить некоторые действия, например изменить цвет другой панели. Таким образом, строка сценария будет выглядеть примерно так: onClick: ChangeBackground-color: # ff44ff для Control-ID: myTestForm Поэтому я пытаюсь добавить обработчик, когда нажимается элемент управления, для запуска субменю ChangeBackground_Color (byRef newColor, byRef ControlID) Я надеюсь, что это имеет смысл –

+0

wow, это трудно объяснить, пожалуйста, подумайте, чтобы спросить об этом, исправление этого спасет мой проект :) –

0

Возможно, вы могли бы изучить использование выражения лямбда при добавлении события. При использовании лямбды в VB.NET функция должна возвращать значение и не поддерживает многострочные операторы.

Dim myButton As New Button 
AddHandler myButton.Click, Function(senderObj, args) myFunc("lol", 255) 
+0

Работает отлично, спасибо, но я не совсем уверен что вы имеете в виду под «не поддерживает многострочные заявления», не могли бы вы объяснить это :) –