[英]How can an external event be known in one sub and not in another, in the same class?
我的問題可能最好用圖像來說明。
在Sub New
, CompositionTarget.Rendering
是眾所周知的,但由於我對C#語法的依賴而陷入困境。 VB.NET很難! 但是在CompositionTargetRendering
,編譯器從未遇到過。 它在System.Windows.Media
聲明,我當然在導入文件中聲明了它。
我對處理程序的聲明不正確嗎? 還是Xenu搞砸了我>
哦,是的,我正在編譯的C#可以正常運行:
CompositionTarget.Rendering += CompositionTargetRendering;
private void CompositionTargetRendering(object sender, EventArgs e)
{
if (stopwatch.ElapsedMilliseconds > lastUpdateMilliSeconds + 5000)
{
viewModel.UpdateModel();
Plot1.RefreshPlot(true);
lastUpdateMilliSeconds = stopwatch.ElapsedMilliseconds;
}
}
您不需要使用+=
在VB.NET中添加處理程序,您需要執行以下任一操作:
聲明對象WithEvents
並使用Handles
關鍵字
Private WithEvents MyCompositionTarget As CompositionTarget
Private Sub CompositionTargetRendering() Handles MyCompositionTarget.Rendering
'code for event here
End Sub
或使用AddHandler
(與C#+ =的工作方式相同)(不要使用Handles
關鍵字)
Private MyCompositionTarget As CompositionTarget
Publlic Sub New
AddHandler MyCompositionTarget.Rendering, AddressOf CompositionTargetRendering
End Sub
Private Sub CompositionTargetRendering()
'code for event here
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.