pravin9455 Ответов: 2

Преобразование кода C'# в VB.NET


Привет
Я пытаюсь преобразовать приведенный ниже код C# в VB.net через конверт кода, но с ошибкой на одной строке, которую я не могу разрешить
(ссылка на код c# : Изменение цвета границы группового поля[^] )
С#
parent.Paint += new PaintEventHandler( OnParentPaint );


vb код:- (также смотрите в том, что я пробовал для vb.net код)
parent.Paint += New PaintEventHandler(AddressOf OnParentPaint)

подчеркивает красным цветом ниже текста и выдает ошибку

Родитель.Краска

Error: 'Public Event Paint As PaintEventHandler' is an event, and cannot be called directly. Use a 'RaiseEvent' statement to raise an event.


Код C#
       /// <summary>
       /// Parent Changed Event
       /// </summary>
       /// <param name="e">event arguments</param>
       protected override void OnParentChanged( EventArgs e )
       {
           base.OnParentChanged( e );
           Control parent = this.Parent;
           while ( null != parent )
           {
               if ( null != parent )
               {
                   parent.Paint += new PaintEventHandler( OnParentPaint );
               }
               parent = parent.Parent;
           }
       }

       /// <summary>
       /// Parent Paint Event
       /// </summary>
       /// <param name="sender">sender object</param>
       /// <param name="e">event arguments</param>

private void OnParentPaint( object sender, PaintEventArgs e )
       {
           this.Refresh();
       }


Что я уже пробовал:

VB.NET код
Protected Overrides Sub OnParentChanged(ByVal e As EventArgs)
        MyBase.OnParentChanged(e)
        Dim parent As Control = Me.Parent

        While parent IsNot Nothing

            If parent IsNot Nothing Then
                parent.Paint += New PaintEventHandler(AddressOf OnParentPaint)
            End If

            parent = parent.Parent
        End While
    End Sub

Richard MacCutchan

Вам нужно изменить свой код в соответствии с указаниями в сообщении об ошибке.

2 Ответов

Рейтинг:
2

codejet

Вы должны попробовать использовать Sharp, потому что он довольно точен.


Рейтинг:
14

Richard Deeming

Вам нужно использовать AddHandler в VB.NET добавление обработчиков событий:
Оператор AddHandler - Visual Basic | Microsoft Docs[^]

AddHandler parent.Paint, AddressOf OnParentPaint


pravin9455

Спасибо