Как сгенерировать событие с помощью addHandler

Браузеры соглашаются с ним. Однако, как синтаксические анализы библиотеки приложения это может варьироваться.

Программы , предположил собирать в группу тождественно названные объекты. В то время как спецификация HTML явно не говорит это, она неявно указана в документация относительно флажков :

флажки Several в форме могут совместно использовать то же имя элемента управления. Таким образом, например, флажки позволяют пользователям выбирать несколько значений для того же свойства.

7
задан MarkJ 28 September 2009 в 19:45
поделиться

4 ответа

Разработчики, которые знают только C # или только VB.Net может не знать, что это одно из самых больших различий между VB.NET и C #.

Я беззастенчиво скопирую это красивое объяснение событий VB: VB использует декларативный синтаксис для присоединения событий. Предложение Handles появляется в коде, который будет обрабатывать событие. При необходимости несколько методов могут обрабатывать одно и то же событие, и несколько событий могут обрабатываться одним и тем же методом. Использование предложения Handles зависит от модификатора WithEvents , появляющегося в объявлении базовой переменной, такой как кнопка. Вы также можете присоединить обработчики свойств с помощью ключевого слова AddHandler и удалить их с помощью RemoveHandler. Например

Friend WithEvents TextBox1 As System.Windows.Forms.TextBox   

Private Sub TextBox1_Leave(ByVal sender As System.Object, _
  ByVal e As System.EventArgs) Handles TextBox1.Leave
  'Do Stuff '
End Sub

В C # вы не можете использовать декларативный синтаксис. Вы используете + =, который перегружен, чтобы действовать как VB.Net AddHandler. Вот пример, беззастенчиво украденный из ответа tster :

public MyClass()
{
    InitializeComponent();
    textBox1.Leave += new EventHandler(testBox1_Leave);
}

void testBox1_Leave(object sender, EventArgs e)
{
  //Do Stuff
}
11
ответ дан 6 December 2019 в 08:44
поделиться
    public MyClass()
    {
        InitializeComponent();
        textBox1.LostFocus += new EventHandler(testBox1_LostFocus);
    }

    void testBox1_LostFocus(object sender, EventArgs e)
    {
        // do stuff
    }
3
ответ дан 6 December 2019 в 08:44
поделиться

В C # 2 и выше вы добавляете обработчики событий следующим образом:

yourObject.Event += someMethodGroup;

Где подпись someMethodGroup совпадает с подписью делегата yourObject.Event .

В C # 1 вам нужно явно создать обработчик событий, подобный этому:

yourObject.Event += new EventHandler(someMethodGroup);

, и теперь подписи группы методов, события и EventHandler должны совпадать.

7
ответ дан 6 December 2019 в 08:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: