2010-08-26 2 views
1

Я пытаюсь преобразовать проект C# в проект vb.net, но у меня есть некоторые трудности.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 
+1

* почему * вы пытаетесь изменить C# на VB. СЕТЬ? Любопытно. –

+2

Нет! Не делай этого! –

+0

lol Что не так с изменением C# на VB.NET? – Azza

ответ

3

Есть бесплатное On-Line утилита преобразования developerfusion

+0

+1 отличная ссылка. Кроме того, SharpDevelop для Mono предлагает преобразования C#/VB.NET: http://stackoverflow.com/questions/3453890/c-vb-net-syntax-conversion-advice/3496281#3496281 – JohnB

+1

Или загрузите сборку в Reflector http://www.red-gate.com/products/reflector/ и вывод на нескольких языках. –

+0

Да, разработчик отлично, это то, что я использовал для конвертирования страницы проекта за страницей, но она просто не работает правильно! – Azza

1

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

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

End Sub 
Смежные вопросы