2010-10-24 88 views
0

我想調用下面,但是EventHander與我的調用事件中的RasConnectionEventArgs不兼容,我將如何在UI線程上調用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

傑夫溫對您的支持請求響應:

的RasConnectionWatcher類是 多線程,這樣你只需要 設置組件的SynchronizingObject的 財產。如果您在表單上有 組件,則可以將其設置爲 它爲表單實例。 一旦設置就會自動處理線程同步 。

或者做類似這樣的:

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

我在委託類型的名字猜測。

+0

喜漢斯,我檢查任何事件處理程序的文件,沒有什麼明顯的。我附上了可用的照片。 – madlan 2010-10-24 16:13:37

+0

使它新的EventHandler(的RasConnectionEventArgs)(AddressOf watcher_Connected) – 2010-10-24 16:25:21

+0

啊,這也行得通,感謝漢斯。 – madlan 2010-10-24 16:28:19