halovalo Ответов: 2

Ошибка BC31143 VB.NET


Всем привет

У меня есть вопрос

В последнее время он работал нормально, но, похоже, я сделал некоторые изменения, которые позволили этой ошибке всплыть.

У меня есть массив текстовых полей
tboks = {tB_1, TB_2,TB_3, ... и т. д}

теперь, если я использую следующий код:
For i = 0 To tboks.Count - 1

            AddHandler tboks(i).Enter, AddressOf tboks_Enter
            AddHandler tboks(i).KeyDown, AddressOf tboks_KeyDown
            AddHandler tboks(i).MouseDown, AddressOf tboks_MouseDown

Next

Private Sub tboks_MouseDown(sender As Object, e As MouseEventArgs)

Msgbox("hi")

End Sub
Private Sub tboks_KeyDown(sender As Object, e As KeyEventArgs)

Msgbox("hi")

End Sub
Private Sub tboks_Enter(sender As Object, e As EventArgs)

Msgbox("hi")

End Sub


Первые два производят эту ошибку BC31143:

Метод 'частная суб tboks_KeyDown(отправителя как объект, как KeyEventArgs) не имеют подписи, совместимые с делегата делегат суб KeyEventHandler(отправителя как объект, как KeyEventArgs)'
и
Метод 'частная суб tboks_MouseDown(отправителя как объект, как MouseEventArgs) не имеют подписи, совместимые с делегата делегат суб MouseEventHandler(отправителя как объект, как MouseEventArgs)'


Третья субмарина работает просто отлично.

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

Спасибо

Что я уже пробовал:

Я попробовал нажать мышкой на одно текстовое поле (TB_1), и оно тоже отлично работает.
Но в массиве все это сходит с ума...

halovalo

Прости мою ошибку... она должна быть оператором addressof tboks_MouseDown ... но я допустил ошибку при копировании / вставке кода в этот поток. Так что даже когда везде в приведенном выше коде у меня одни и те же имена.... Я получаю ту же ошибку. Вот почему я задал этот вопрос здесь. Отредактировано: исправлен пример кода. Вот тут-то я и получаю эту ошибку.

2 Ответов

Рейтинг:
0

Dave Kreskowiak

Вы, возможно, захотите, чтобы проверить имена в этих заявлениях оператором addressof :

tboks_1_Клавиша вниз
tboks_1_событие MouseDown


Рейтинг:
0

halovalo

Я нашел решение. Кажется, я сделал некоторые изменения, что система отключена.окна.формы

Я заметил, что когда я создал mousedown sub в одном текстовом поле, Код сгенерировал (e system.windows.forms. mouseeventargs) вместо просто (e mouseventargs)

Так что пока я просто добавил

import system.windows.forms
на вершину класса


Итак, мой первоначальный вопрос теперь решен, и код работает...хотя теперь я получаю такие предупреждения, как:

Предупреждение CA2240 добавьте реализацию GetObjectData к типу 'DS_admin'

Но это, я думаю, не соответствует первоначальному вопросу...