有关 Visual Basic 中继承的事件处理程序的疑难解答

本主题列出了在继承的组件中使用事件处理程序时遇到的常见问题。

过程

事件处理程序中的代码针对每次调用执行两次

  • 继承的事件处理程序不得包含 Handles 子句。 基类中的方法已与事件关联,并将相应地触发。 从继承的方法中删除 Handles 子句。

    ' INCORRECT
    Protected Overrides Sub Button1_Click(
        ByVal sender As System.Object,
        ByVal e As System.EventArgs) Handles Button1.Click
    
        ' The Handles clause will cause all code
        ' in this block to be executed twice.
    End Sub
    
  • 如果继承的方法没有 Handles 关键字,请验证代码是否不包含额外的 AddHandler 语句或处理同一事件的任何其他方法。

请参阅