Конвертация проекта C # в VB.net - PullRequest
1 голос
/ 26 августа 2010

Я пытаюсь преобразовать проект C # в проект vb.net, но у меня возникают некоторые трудности.

Ниже приведено событие нажатия кнопки:

private void button2_Click(object
sender, EventArgs e)
        {
            Appointment m_App = new Appointment();
            m_App.StartDate = dayView1.SelectionStart;
            m_App.EndDate = dayView1.SelectionEnd;
            m_App.BorderColor = Color.Red;

            m_Appointments.Add(m_App);

            dayView1.Invalidate();
        }

Что тогдавызывает следующее:

protected override void
    OnPaint(PaintEventArgs e)
{
            e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;

            // resolve appointments on visible date range.
            ResolveAppointmentsEventArgs args = new
        ResolveAppointmentsEventArgs(this.StartDate,
        this.StartDate.AddDays(daysToShow));
            ResolveAppointments(args);

            using (SolidBrush backBrush = new
          SolidBrush(renderer.BackColor))
                  e.Graphics.FillRectangle(backBrush,
          this.ClientRectangle);

            // Visible Rectangle            Rectangle
        rectangle = new Rectangle(0, 0,
              this.Width - VScrollBarWith,
              this.Height);

            DrawDays(ref e, rectangle);

            DrawHourLabels(ref e, rectangle);

            DrawDayHeaders(ref e, rectangle);
}

Я преобразовал каждый раздел в код VB.net:

 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)  Handles Button1.Click
         Dim m_App As New Appointment()
         m_App.StartDate = DayView1.SelectionStart
         m_App.EndDate = DayView1.SelectionEnd
         m_App.BorderColor = Color.Red

         m_Appointments.Add(m_App)

         DayView1.Invalidate()

 End Sub

Но он автоматически не вызывается:

Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
            e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias

            ' resolve appointments on visible date range.'
            Dim args As New ResolveAppointmentsEventArgs(Me.StartDate, >Me.StartDate.AddDays(m_daysToShow))
            ResolveAppointments(args)

            Using backBrush As New SolidBrush(m_renderer.BackColor)
                e.Graphics.FillRectangle(backBrush, Me.ClientRectangle)
            End Using

            ' Visible Rectangle '
            Dim rectangle As New Rectangle(0, 0, Me.Width - VScrollBarWith, Me.Height)

            DrawDays(e, rectangle)

            DrawHourLabels(e, rectangle)

            DrawDayHeaders(e, rectangle)
 End Sub

Ответы [ 2 ]

3 голосов
/ 26 августа 2010

Существует бесплатная онлайн-утилита конвертации developerfusion

1 голос
/ 27 августа 2010

Вместо переопределения события OnPaint, попробуйте объявить его следующим образом:

Private Sub form_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint

End Sub
...