【问题标题】:Visual Studio 2008 ASP.NET Website error: Handles clause requires a WithEvents variable defined in the containing type or one of its base typeVisual Studio 2008 ASP.NET 网站错误:Handles 子句需要在包含类型或其基类型之一中定义的 WithEvents 变量
【发布时间】:2018-10-17 11:21:50
【问题描述】:

我是这份工作的新手,正在努力适应 VB.NET 和 Visual Studio 2008。我来自 VS 2015 - 2017 和 C#。

我从 Subversion Source Control 下载了一个项目并尝试运行它。我收到这个奇怪的错误,上面写着:“Handles 子句需要在包含类型或其基类型之一中定义的 WithEvents 变量”。我在网络上尝试了几种解决方案,但无济于事。我尝试了hereherehere 的解决方案,但没有任何运气。一些解决方案与 aspx.designer.vb 文件有关,但与项目不同的是,VS 2008 ASP.NET 网站没有这些类型的文件。我试图重新创建按钮和后面的代码,但没有运气。错误仍然存​​在,并且该错误仅涉及一个按钮。同一页面中的其他按钮工作正常。

我应该如何解决这个问题?请!谢谢!

【问题讨论】:

    标签: asp.net vb.net visual-studio-2008 webforms


    【解决方案1】:

    如果没有看到代码,就不可能说出错误发生的原因,但这里是可能导致此问题的原因之一。

    您正在尝试使用未声明使用事件的类型的事件

    考虑以下示例:

    Dim txbx as New TextBox
    

    在这里,我创建了一个TextBox 类型的新实例。我们知道一个文本框有可能发生的事件,所以如果你尝试访问上面声明的文本框的事件,如下所示:

    Private sub txtbx_TextChanged(……….) Handles txtbx.TextChanged
    

    然后你会得到错误。为了访问代码隐藏声明的类型/控件的事件,你必须在定义/声明类型的变量时WithEvents

    Dim WithEvents txtbx as New TextBox
    

    现在您可以轻松访问该类型的所有事件。正如我之前所说,这可能不是您的问题,但如果是,那么我希望它会有所帮助:)

    创建一个新页面,复制粘贴上一页的所有代码(HTML 中的页面指令除外)并重建您的项目...

    【讨论】:

    • 嗨扎克。感谢您的快速回复。有效的按钮以及给出错误的按钮都没有声明。据我所知,它们是在 Web 窗体项目的 aspx.designer.vb 中声明的,但这不是项目而是网站,所以我没有这些文件。这些按钮似乎没有在项目的任何地方声明,甚至没有真正起作用的按钮。你能澄清一下这些按钮应该在哪里声明吗?
    • 它们应该在 .aspx 文件中声明,甚至可以在 .vb 文件中声明......
    • 如果你还有什么要说的可能过于笼统,你可以放弃它here
    • 好的,我会在那次聊天中写一些话。谢谢。
    • Zack,非常感谢您通过聊天提供的帮助。我更改了有问题的页面的名称,重建后错误消失了。然后,我能够将其更改回原来的名称。很奇怪的东西。请编辑您的答案,以便我投票并将其标记为已接受。
    猜你喜欢
    • 2011-12-02
    • 1970-01-01
    • 2022-11-08
    • 2023-03-20
    • 1970-01-01
    • 2019-04-19
    • 1970-01-01
    相关资源
    最近更新 更多