Конвертировать из C # в VB ошибка - PullRequest
0 голосов
/ 23 февраля 2012

Я преобразовал рабочий класс C #, который встраивает файлы xls в приложение windows form, в 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 или лямбда-выражение в качестве единственного аргумента своего конструктора.

есть идеи?

заранее спасибо.

Ответы [ 2 ]

5 голосов
/ 23 февраля 2012

Прямой перевод C # delegate += - AddHandler в VB:

AddHandler Me.WebBrowserExcel.Navigated, AddressOf Me.OnWebBrowserExcelNavigated

В качестве альтернативы, вы можете сделать это способом VB.NET и использовать WithEventsи пункт ручки :

Function OnWebBrowserExcelNavigated(...) Handles WebBrowserExcel.Navigate
    ...
End Function
2 голосов
/ 23 февраля 2012

Когда вы обрабатываете событие в 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...