我有一个使用Sharpdevelop从c#转换的VB.net项目。当我打开项目时,我可以运行得很好。然后我在表单上添加了一个按钮,突然出现了12个错误:
Handles子句需要在包含类型或其基类型之一中定义的WithEvents变量
对于看起来像这样的行:
Private Sub topListButton_Click(sender As Object, e As EventArgs) _
Handles topListButton.Click
这是从c#转换的代码。我不知道为什么它最初运行但在我改变项目后遭到轰炸。
我尝试删除部分行:
Handles topListButton.Click
但现在按钮点击不会触发。任何线索都将非常感激。
答案 0 :(得分:3)
VB.Net有一些奇怪的错误(或功能,取决于谁问)
如果您想使用Handles
关键字附加事件处理程序,则必须使用WithEvents
关键字声明引发事件的对象。
关于它的奇怪之处在于,无论是否有WithEvents
声明,都会引发事件,其唯一目的是允许您使用Handles
关键字。您仍然可以使用Add handler
语句将事件附加到处理程序
您可以看到代码示例here。
答案 1 :(得分:0)
保存topListButton_Click
方法的主体(Ctrl-C),删除整个方法,双击WinForms设计器中的topListButton
重新创建它,然后再次插入主体(Ctrl -V)。