0

サンプルコードのc#コードをvb.netに変換しようとしていますが、次のコード行で変換できます。それはイベントです、デリゲート。しかし、私は機能的な構造を構築することはできません。誰かが私を助けることができますか?ありがとう

Ellipse node = new Ellipse();
node.Style = nodeStyle;

node.MouseEnter += delegate(object sender, MouseEventArgs e) {
    if (selectedNode == null)
        node.BeginStoryboard((Storyboard)FindResource("NodeFadeIn"));
};

node.MouseLeave += delegate(object sender, MouseEventArgs e) {
    if (selectedNode == null)
        node.BeginStoryboard((Storyboard)FindResource("NodeFadeOut"));
};

node.PreviewMouseDown += delegate(object sender, MouseButtonEventArgs e) {
    e.Handled = true;
    selectedNode = (Ellipse)sender;
};
4

1 に答える 1

2

イベント ハンドラーをサブスクライブするには、VB.NET で AddHandler キーワードを使用する必要があります。VS2010 では、次のように匿名メソッドをラムダに置き換えることができます。

    AddHandler node.MouseEnter, _
        Sub()
            If node Is Nothing Then
                node.BeginStoryboard(DirectCast(FindResource("NodeFadeIn"), System.Windows.Media.Animation.Storyboard))
            End If
        End Sub

VS2008 以前では、少しプライベート メソッドを記述する必要があります。

于 2012-06-08T18:12:34.250 に答える