【问题标题】:Convert from C# to VB error从 C# 转换为 VB 错误
【发布时间】:2012-02-23 08:59:20
【问题描述】:

我已经将一个将 xls 文件嵌入到 Windows 窗体应用程序的工作 C# 类转换为 vb。

我收到错误:

“重载解析失败,因为没有可访问的'Navigate'接受这个数量的参数”

在以下行:

来自:

this.WebBrowserExcel.Navigated+=new System.Windows.Forms.WebBrowserNavigatedEventHandler(this.OnWebBrowserExcelNavigated);

到:

Me.WebBrowserExcel.Navigate += New System.Windows.Forms.WebBrowserNavigatedEventHandler(AddressOf Me.OnWebBrowserExcelNavigated)

我也试过了:

Me.WebBrowserExcel.Navigate += New System.Windows.Forms.WebBrowserNavigatedEventHandler(Me.OnWebBrowserExcelNavigated)

但我得到错误:

错误 13 委托“System.Windows.Forms.WebBrowserNavigatedEventHandler”需要一个“AddressOf”表达式或 lambda 表达式作为其构造函数的唯一参数。

有什么想法吗?

提前致谢。

【问题讨论】:

    标签: c# vb.net delegates


    【解决方案1】:

    C#的delegate +=在VB中直接翻译为AddHandler

    AddHandler Me.WebBrowserExcel.Navigated, AddressOf Me.OnWebBrowserExcelNavigated
    

    或者,您可以使用 VB.NET 方式并使用WithEvents and the Handles Clause

    Function OnWebBrowserExcelNavigated(...) Handles WebBrowserExcel.Navigate
        ...
    End Function
    

    【讨论】:

    • Me.WebBrowserExcel.Navigate 不是处理程序,因此我无法放置 addhandler。 Me.WebBrowserExcel.Navigated 是处理程序。该课程使用的是导航而不是导航。
    • 好的,我已经使用了 WebBrowserExcel.Navigated 与 addhandler 并工作。谢谢!!!
    • @HansPassant:感谢您纠正错字!
    【解决方案2】:

    在vbnet中处理事件时,应该使用AddHandler

    试试这个:

    AddHandler Me.WebBrowserExcel.Navigate, AddressOf Me.OnWebBrowserExcelNavigated
    

    或者看看这个例子:

    Public Class RoutedEventAddRemoveHandler
    
        Private Sub MakeButton(ByVal sender As Object, ByVal e As RoutedEventArgs)
            Dim b2 As Button = New Button()
            b2.Content = "New Button"
            AddHandler b2.Click, AddressOf Onb2Click
            root.Children.Insert(root.Children.Count, b2)
            DockPanel.SetDock(b2, Dock.Top)
            text1.Text = "Now click the second button..."
            b1.IsEnabled = False
        End Sub
    
        Private Sub Onb2Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
            text1.Text = "New Button (b2) Was Clicked!!"
        End Sub
    End Class
    

    【讨论】:

    • 好的,我已经使用了 WebBrowserExcel.Navigated 与 addhandler 并工作。谢谢!!!
    猜你喜欢
    • 1970-01-01
    • 2014-01-11
    • 1970-01-01
    • 2012-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-28
    • 1970-01-01
    相关资源
    最近更新 更多