У меня есть следующий код C #, который я пытаюсь преобразовать в VB.NET.
Я также хочу заменить Console.WriteLine на обратные вызовы.
Я думаю и надеюсь, что мне удалось преобразовать его в некоторой степени:
nInteractorsAgent
.AddInteractorFor(currentWindowBounds, Literals.RootId, 0, currentWindowHandle.ToString(), "MyFirstActivatable")
.WithActivatable()
.HasActivationFocus(id => Console.WriteLine("Id: {0} got activation focus.", id))
.SetTentativeFocusEnabled(true)
.HasTentativeFocus(id => Console.WriteLine("Id: {0} got tentative activation focus.", id))
.WhenFocusChanged((id, hasTentativeFocus, hasActivationFocus) => { })
.LostFocus(id => Console.WriteLine("Id: {0} lost focus.", id))
.WhenActivated(id => Console.WriteLine("Id: {0} activated", id));
Мой подход в VB.NET таков:
Dim v1 As VirtualInteractor = nInteractorsAgent.AddInteractorFor(currentWindowBounds, Literals.RootId, 0, "0", "MyFirstActivatable").WithActivatable().HasActivationFocus(Sub() HasActivationFocus(v1.Id)).SetTentativeFocusEnabled(True).HasTentativeFocus(Sub() HasTentativeFocus(v1.Id)).WhenFocusChanged(Sub() WhenFocusChanged(v1.Id, False, False)).LostFocus(Sub() LostFocus(v1.Id)).WhenActivated(Sub() WhenActivated(v1.Id))
Public Shared Sub HasActivationFocus(ByVal id As String)
End Sub
Public Shared Sub HasTentativeFocus(ByVal id As String)
End Sub
Public Shared Sub WhenFocusChanged(ByVal id As String, ByVal hasTentativeFocus As Boolean, ByVal hasActivationFocus As Boolean)
End Sub
Public Shared Sub WhenFocusChanged()
End Sub
Public Shared Sub LostFocus(ByVal id As String)
End Sub
Public Shared Sub WhenActivated(ByVal id As String)
End Sub
Однако, компилятор говорит мне, что что-то не так с
.WhenFocusChanged(Sub() WhenFocusChanged(v1.Id, False, False))
и
.WhenActivated(Sub() WhenActivated(v1.Id))
Компилятор сообщает мне, что версии WhenFocusChanged не существует.
Декларации таковы:
<Extension>
Public Shared Function WhenFocusChanged(behaviors As IEnumerable(Of ActivatableBehavior), action As ActivationFocusChangedCallback) As IEnumerable(Of ActivatableBehavior)
<Extension>
Public Shared Function WhenFocusChanged(behavior As ActivatableBehavior, action As ActivationFocusChangedCallback) As ActivatableBehavior
Кто-нибудь может показать мне, что я здесь делаю неправильно и как это сделать правильно?
Я не знаю, какая информация, помимо приведенной, важна для читателей в этом случае.
Спасибо.