In visual studio 2010
我將a standard linklabel
拖到表單上。我doubleclick
標籤產生Click-EventHandler
。LinkLabel.Click:EventArgs上的InvalidCastexception
哪產生以下結果:
Private Sub lnkDoc_LinkClicked(sender As System.Object, e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles lnkDoc.Click
Process.Start(....)
End Sub
當running (no builderrors) & clicking the link
以下錯誤發生:
JIT-Exception:
System.InvalidCastException: Unable to cast object of type 'System.Windows.Forms.MouseEventArgs' to type 'System.Windows.Forms.LinkLabelLinkClickedEventArgs'.
當我change
的eventhandler
使用MouseEventsArgs
代替然後i dont encouter any problems
:
Private Sub lnkDoc_LinkClicked(sender As System.Object, e As System.Windows.Forms.MouseEventArgs) Handles lnkDoc.Click
Process.Start(....)
End Sub
問題: 爲什麼Visual Studio會提供使用'LinkLabelLinkClickedEventArgs
'而不是所需的'MouseEventArgs
'我該如何保護自己以防將來發生此類錯誤?
注:
LinkLabelLinkClickedEventArgs:爲LinkClicked事件提供數據。
MouseEventArgs:爲MouseUp,MouseDown和MouseMove事件提供數據。
你有沒有注意到你處理點擊事件而不是'LinkClicked'事件? – 2014-10-16 11:24:10
@TimSchmelter:的確如此。我沒有注意到這一點。我一定會專注於生成的函數名稱。現在開始變得更有意義了; – User999999 2014-10-16 11:25:38