Shape-Steuerelement für Visual Basic 6.0-Benutzer
Aktualisiert: November 2007
Das Shape-Steuerelement in Visual Basic 6.0 hat keine Entsprechung in Visual Basic 2008. Sie können jedoch dieselben Ergebnisse mit den Graphics-Methoden erzielen, oder Sie können das OvalShape-Steuerelement bzw. das RectangleShape-Steuerelement aus Visual Basic Power Packs verwenden. Diese Steuerelemente sind als Add-Ins verfügbar.
Konzeptionelle Unterschiede
In Visual Basic 6.0 können mithilfe des Shape-Steuerelements zur Entwurfszeit ohne weiteres Rechtecke, Kreise und andere Formen auf einem Formular gezeichnet werden. Das Shape-Steuerelement ist ein kompaktes Steuerelement, d. h., es besitzt kein Windows-Handle (auch als HWnd bezeichnet).
In Visual Basic 2008 gibt es keine Entsprechung für das Shape-Steuerelement, und kompakte Steuerelemente werden nicht mehr unterstützt. Es gibt jedoch Möglichkeiten, sowohl zur Entwurfszeit als auch zur Laufzeit Formen auf ein Formular zu zeichnen.
Hinweis: |
---|
Die Visual Basic Power Packs-Steuerelemente beinhalten die Steuerelemente LineShape, OvalShape und RectangleShape, mit denen die Steuerelemente Line und Shape ersetzt werden können. Zusätzlich zum Verhalten der Visual Basic 6.0-Steuerelemente Line und Shape verfügen diese Steuerelemente über neue Fähigkeiten, z. B. Farbverläufe, Laufzeitauswahl und Laufzeitereignisse. |
Sie können Visual Basic Power Packs auf der MSDN-Website von der Seite Microsoft Visual Basic 2005 Power Packs herunterladen.
Zur Entwurfszeit können Sie auf einem Formular eine quadratische oder rechteckige Form zeichnen. Dazu müssen Sie ein Label-Steuerelement hinzufügen und die Text-Eigenschaft auf eine leere Zeichenfolge, die BorderStyle-Eigenschaft auf FixedSingle und die Eigenschaften BackColor, Width sowie Height auf die gewünschte Farbe und die gewünschten Abmessungen festlegen.
Zur Laufzeit können Sie Rechtecke, Ellipsen und komplexe Formen im Paint-Ereignishandler eines Formulars zeichnen, indem Sie ein neues Objekt aus der Graphics-Klasse erstellen und deren Methoden aufrufen.
In Visual Basic 6.0 können Sie mithilfe eines Shape-Steuerelements eine Form auf einem Containersteuerelement zeichnen, z. B. auf einem PictureBox-Steuerelement oder Frame-Steuerelement, indem Sie dem Container ein Shape-Steuerelement hinzufügen.
In Visual Basic 2008 erreichen Sie den gleichen Effekt durch Aufrufen der Graphics-Methoden im Paint-Ereignis des Containersteuerelements.
Änderungen am Code des Shape-Steuerelements
Im folgenden Codebeispiel werden Unterschiede in den Codierungstechniken von Visual Basic 6.0 und Visual Basic 2008 dargestellt.
Änderungen am Code zum Zeichnen von rechteckigen Formen
Der folgende Code veranschaulicht das Zeichnen eines gefüllten Rechtecks auf einem Formular zur Laufzeit. Im Visual Basic 6.0-Beispiel wird das Shape-Steuerelement verwendet. Das Beispiel setzt voraus, dass zur Entwurfszeit ein Line-Steuerelement hinzugefügt wurde. Im Visual Basic 2008-Beispiel werden zwei verschiedene Verfahren veranschaulicht, bei denen einerseits ein Label-Steuerelement und andererseits Graphics-Methoden verwendet werden.
Hinweis: |
---|
Die Standardmaßeinheit in Visual Basic 6.0 war Twips, die in Visual Basic 2008 ist Pixel. |
' Visual Basic 6.0
Private Sub Form_Load()
' Show a solid red rectangle 200 twips from the top left.
Shape1.Top = 200
Shape1.Left = 200
Shape1.FillColor = vbRed
Shape1.FillColor= vbFSSolid
Shape1.BorderColor = vbRed
End Sub
' Visual Basic
' Using a Label control.
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles MyBase.Load
Dim Shape1 As New System.Windows.Forms.Label
' Show a solid red rectangle 14 pixels from the top left.
Shape1.Location = New System.Drawing.Point(14, 14)
Shape1.Size = New System.Drawing.Size(200, 100)
Shape1.BorderStyle = BorderStyle.None
Shape1.BackColor = System.Drawing.Color.Red
Shape1.Text = ""
Controls.Add(Shape1)
End Sub
' Visual Basic
' Using Graphics methods.
Private Sub Form2_Paint(ByVal sender As Object, ByVal e As _
System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
' Draw a solid blue rectangle below the red rectangle.
e.Graphics.FillRectangle(Brushes.Blue, 14, 120, 200, 100)
End Sub
Änderungen am Code zum Zeichnen von Kreisen
Der folgende Code veranschaulicht das Zeichnen eines Kreises auf einem Formular zur Laufzeit. Im Visual Basic 6.0-Beispiel wird das Shape-Steuerelement verwendet. Das Beispiel setzt voraus, dass zur Entwurfszeit ein Shape-Steuerelement hinzugefügt wurde. Im Visual Basic 2008-Beispiel werden Graphics-Methoden verwendet.
Hinweis: |
---|
Die Standardmaßeinheit in Visual Basic 6.0 war Twips, die in Visual Basic 2008 ist Pixel. |
' Visual Basic 6.0
Private Sub Form_Load()
' Draw a 1000 twip diameter red circle.
Shape1.Top = 0
Shape1.Left = 0
Shape1.Height = 1000
Shape1.Width = 1000
Shape1.Shape = vbShapeCircle
Shape1.BorderColor = vbRed
End Sub
' Visual Basic
Private Sub Form3_Paint(ByVal sender As Object, ByVal e As _
System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
' Draw a 70 pixel diameter red circle.
e.Graphics.DrawEllipse(Pens.Red, 0, 0, 70, 70)
End Sub
Hinweise zum Durchführen einer Aktualisierung
Nach dem Aktualisieren einer Visual Basic 6.0-Anwendung verwendet Code, in dem auf das Shape-Steuerelement verwiesen wird, das OvalShape-Steuerelement oder das RectangleShape-Steuerelement aus der Visual Basic Power Packs-Bibliothek. Eine Warnung wird ausgegeben, wenn während der Aktualisierung ein Verweis auf das Shape-Steuerelement festgestellt wird. Die Bibliothek muss installiert und dem aktualisierten Projekt ein entsprechender Verweis hinzugefügt werden.
Sie können Visual Basic Power Packs auf der MSDN-Website von der Seite Microsoft Visual Basic 2005 Power Packs herunterladen.