2011-01-13 11 views
1

Ok, ich möchte eine Klasse erstellen, die eine spezielle Rechteckgrafik behandelt.Erstellen einer Klasse, die einige Grafiken enthält/zeichnet?

In meiner Form möchte ich zwei dieser speziellen Rechtecke haben. Also, im Grunde brauche ich zwei Instanzen dieser Klasse in meiner Form, oder?

Ich schaffe es, zwei zu initialisieren, in Ordnung. Aber wie genau soll ich Zeichnungen/Grafiken usw. in einer Klasse verwalten und die Ergebnisse in meinem Formular anzeigen?

Antwort

3

Es gibt ein paar Konzepte, die Sie brauchen, um dies herauszufinden zusammen zu stellen:

  • Sie müssen die Objekte verfolgen Sie zu zeichnen gehen. Sie sind teilweise dort, aber das ist in der Regel mit einer Sammlung von einer Art wie Liste (von ...)
  • Sie müssen mit dem Paint-Ereignis Ihrer Form-Klasse (oder Panel oder Control oder was auch immer visuelles Objekt Sie wollen) ziehen in oder auf)
  • Sie benötigen Objekte zeichnen innerhalb Sie Handler Malen
  • Jedes Mal, wenn der Zustand der Anwendung ändert Sie Invalidate auf das Objekt aufrufen müssen, die gemalt wird, um „Kraft“ eine frische repaint.

Hier ist ein kurzer Auszug:

 ' suppose you have: 
    Private _myRects as New List(of Rectangle) ' populated elsewhere 

    ' then you handle the paint event of a UI control 
    Private Sub Control_Paint(ByVal sender As Object, ByVal e As PaintEventArgs) _ 
    Handles MyBase.Paint 
     Dim g As Graphics = e.Graphics 

     ' loop through your collection drawing each rectangle: 
     for each rect As Rectangle in _myRects 
      g.FillRectangle(Brushes.Aqua, rect) 
     next for 

     ...more drawing as needed 
    end sub 

Und hier ist ein pretty nice tutorial auf .NET Malerei mit VB. Wenn Sie es durchgehen, sollten Sie alle Teile haben, um jede Art von 2D-.NET-Zeichnung zu machen, die Sie mögen. (Der Spaß beginnt nicht vor Seite 2, aber überspringen Sie nicht Seite 1!)

Verwandte Themen