Странная ошибка WNDProc в .NET. Vb.net конкретно
Вопрос
ETA: Я использую Visual Studio 2008 Express Edition.
Если я переопределяю WNDProc и запустить как-то, я обычно возвращаюсь, комментируя код до тех пор, пока он не работает снова.
Странная вещь с WndProc, хотя вы можете отложить его до:
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
MyBase.WndProc((m))
End Sub
И это все еще выбрасывает ошибку.
Я должен удалить код и вывести его, чтобы сбросить ошибку.
Кто-нибудь еще испытал это?
ETA:
Ответил ниже Криса Хааса.
Я не понял, но эта проблема должна произойти только тогда, когда я использовал код из отражателя. Reflector MIS - переводит в VB.NET и вставляет дополнительные кронштейны в вызовы на базу WNDPROC.
Решение
Когда вы завершаете аргумент в скобках, вы переопределяете ByRef
позвонить и вместо этого звонить ByVal
. Отказ Видеть Аргумент не изменяется по вызову процедуры - базовая переменная
Просто измените код:
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
MyBase.WndProc(m)
End Sub