我有一个使用Sharpdevelop从c#转换而来的VB.net项目。当我打开项目时,我可以很好地运行它。然后我在表单上添加了一个按钮,突然弹出了12个错误,说:
Handles子句需要在包含类型或其基本类型之一中定义的WithEvents变量
对于看起来像这样的行:
Private Sub topListButton_Click(sender As Object, e As EventArgs) _
Handles topListButton.Click
这是从c#转换而来的代码。我不确定为什么它最初运行,但是在我对该项目进行更改后又被炸了。
我尝试通过以下方式删除部分行:
Handles topListButton.Click
但现在按钮的点击不会触发。任何线索将不胜感激。
最佳答案
VB.Net有一些奇怪的错误(或功能,取决于谁问)。
如果要使用Handles
关键字附加事件处理程序,则必须使用WithEvents
关键字声明引发事件的对象。
奇怪的是,无论是否带有WithEvents
声明都会引发事件,它的唯一目的是允许您使用Handles
关键字。您仍然可以使用Add handler
语句将事件附加到处理程序。
您可以看到一个代码示例here。