2010-10-24 2 views
0

Я пытаюсь вызвать ниже, но EventHander не совместим с RasConnectionEventArgs из моего вызывающего события, как я могу вызвать SetOverlayIcon и значок уведомления в потоке пользовательского интерфейса?EventHandler Запрашивающий вопрос

Public Sub watcher_Connected(ByVal sender As Object, ByVal e As RasConnectionEventArgs) 

    If InvokeRequired Then 
     BeginInvoke(New EventHandler(AddressOf OnRegChanged)) 
    Else 

     TaskbarManager.Instance.SetOverlayIcon(My.Resources.LockIcon, "Connected") 
     Me.NotifyIcon.ShowBalloonTip(5000, "Connected", e.Connection.EntryName, ToolTipIcon.Info) 

End Sub 

alt text

ответ

2

ответ Джеффа Winn к вашему запросу поддержки:

Класс RasConnectionWatcher является многопоточный, как таковой вам просто нужно установить свойство SynchronizingObject на компоненте , Если у вас есть компонент на форме, вы можете установить на экземпляр формы. Он будет обрабатывать синхронизацию потоков для автоматически после его установки.

Или это похоже на это:

If InvokeRequired Then 
     BeginInvoke(New EventHandler(Of RasConnectionEventArgs)(AddressOf watcher_Connected), sender, e) 
    Else 
     '' etc... 
    End If 

Я предполагаю, что в имени типа делегата.

+0

Hi Hans, я проверил документацию для каких-либо обработчиков событий, ничего очевидного. Я добавил фотографию. – madlan

+0

Сделать это новым EventHandler (из RasConnectionEventArgs) (AddressOf watcher_Connected) –

+0

Ahh, который тоже работает, спасибо Хансу. – madlan

Смежные вопросы