【问题标题】:Windows Form Application "Handles clause requires a WithEvents variable defined in the containing type or one of its base types."Windows 窗体应用程序“Handles 子句需要在包含类型或其基类型之一中定义的 WithEvents 变量。”
【发布时间】:2019-04-19 17:51:16
【问题描述】:

可能只是我,但我在互联网上的任何地方都没有找到任何信息来帮助我解决这个问题。错误来自代码中的EnterButton。当我研究它时,它会出现:

Handles 子句需要在包含类型或其基类型之一中定义的 WithEvents 变量。

Private Sub EnterButton_Click(sender As Object, e As EventArgs) Handles EnterButton.Click
    MessageBox.Show("Hello", "hello")
End Sub

我什至不确定这是否足以知道出了什么问题。如果您需要查看更多代码来帮助我,请告诉我。

【问题讨论】:

  • 我应该补充一点,当我注释掉代码时,它似乎运行完美。
  • 您可能需要将声明更改为Public WithEvents EnterButton As Button...除非您使用表单设计器添加了按钮,否则您的设计器文件有问题。此外,WithEvents 只能在类范围级别使用,如果您在子/函数内创建按钮,则需要使用 AddHandler
  • 您是否在某处复制了网络代码?一般来说,您在设计器中将Button 添加到您的表单中,然后双击它以生成Click 事件处理程序。这就是其他人会为生成该方法所做的事情。在这种情况下,您应该在表单中添加适当的控件,例如添加Button 并将其命名为EmterButton。或者,先添加控件并双击它以生成事件处理程序,然后只需复制方法主体而不是整个内容。
  • 返回设计器并添加/编辑按钮。它的名称需要是“EnterButton”。

标签: vb.net visual-studio winforms visual-studio-2015


【解决方案1】:

当您使用 Handles 关键字连接事件处理程序时,您使用 Handles 关键字的对象的变量必须定义为 WithEvents。

Public YourClass

     Private WithEvents EnterButton As New Button()

End YourClass

【讨论】:

    猜你喜欢
    • 2011-12-02
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 2018-10-17
    • 2022-11-08
    • 1970-01-01
    相关资源
    最近更新 更多