簡體   English   中英

在同一個類中,如何在一個子事件而不是另一個子事件中知道外部事件?

[英]How can an external event be known in one sub and not in another, in the same class?

我的問題可能最好用圖像來說明。

Sub NewCompositionTarget.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM