Partager via


Contrôle Shape pour les utilisateurs de Visual Basic 6.0

Mise à jour : novembre 2007

Le contrôle Shape dans Visual Basic 6.0 n'a aucun équivalent dans Visual Basic 2008. Toutefois, vous pouvez utiliser les méthodes Graphics pour obtenir les mêmes résultats ou vous pouvez utiliser les contrôles OvalShape ou RectangleShape de Visual Basic Power Packs. Ces contrôles sont disponibles en tant que compléments.

Différences conceptuelles

Dans Visual Basic 6.0, le contrôle Shape offre un moyen facile de dessiner des rectangles, des cercles et d'autres formes sur un formulaire au moment du design. Le contrôle Shape est un contrôle léger, ce qui signifie qu'il n'a pas de handle Windows, également appelé HWnd.

Dans Visual Basic 2008, il n'existe aucun équivalent pour le contrôle Shape et les contrôles légers ne sont plus pris en charge. Toutefois, il existe des méthodes permettant de dessiner des formes sur un formulaire au moment du design et au moment de l'exécution.

Remarque :

Les contrôles Visual Basic Power Packs incluent les contrôles LineShape, OvalShape et RectangleShape qui permettent de remplacer les contrôles Line et Shape. En plus de dupliquer le comportement des contrôles Line et Shape de Visual Basic 6.0, ces contrôles ajoutent des fonctions nouvelles, dont notamment les dégradés, la sélection au moment de l'exécution et les événements au moment de l'exécution.

Vous pouvez télécharger Visual Basic Power Packs à la page Microsoft Visual Basic 2005 Power Packs du site Web MSDN.

Au moment du design, vous pouvez dessiner une forme carrée ou rectangulaire sur un formulaire en ajoutant un contrôle Label et en affectant une chaîne vide à la propriété Text, FixedSingle à la propriété BorderStyle et la couleur et les dimensions souhaitées à BackColor, Width et Height.

Au moment de l'exécution, vous pouvez dessiner des rectangles, des ellipses et des formes complexes dans le gestionnaire d'événements Paint d'un formulaire en créant un nouvel objet de la classe Graphics et appelant ses méthodes.

Dans Visual Basic 6.0, vous pouvez utiliser un contrôle Shape pour dessiner une forme sur un contrôle conteneur tel qu'un contrôle PictureBox ou Frame en ajoutant un contrôle Shape au conteneur.

Dans Visual Basic 2008, vous pouvez accomplir le même effet en appelant les méthodes Graphics dans l'événement Paint du contrôle conteneur.

Modifications du code pour le contrôle Shape

Les exemples de code ci-dessous illustrent les différences entre les techniques de codage dans Visual Basic 6.0 et dans Visual Basic 2008.

Modifications du code pour dessiner des formes rectangulaires

Le code suivant illustre le dessin d'un rectangle plein sur un formulaire au moment de l'exécution. Dans l'exemple Visual Basic 6.0, le contrôle Shape est utilisé ; considérez qu'un contrôle Line a été ajouté au moment du design. L'exemple Visual Basic 2008 illustre deux méthodes différentes : l'utilisation d'un contrôle Label et l'utilisation des méthodes Graphics.

Remarque :

Dans Visual Basic 6.0, l'unité de mesure par défaut correspondait à des twips ; dans Visual Basic 2008, il s'agit de pixels.

' 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

Modifications du code pour dessiner un cercle

Le code suivant montre comment dessiner un cercle sur un formulaire au moment de l'exécution. Dans l'exemple Visual Basic 6.0, le contrôle Shape est utilisé ; considérez qu'un contrôle Shape a été ajouté au moment du design. L'exemple Visual Basic 2008 utilise les méthodes Graphics.

Remarque :

Dans Visual Basic 6.0, l'unité de mesure par défaut correspondait à des twips ; dans Visual Basic 2008, il s'agit de pixels.

' 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

Mettre à niveau des remarques

Lorsqu'une application Visual Basic 6.0 est mise à niveau, le code qui fait référence au contrôle Shape est mis à niveau pour utiliser les contrôles OvalShape ou RectangleShape inclus dans la bibliothèque Visual Basic Power Packs. Si une référence au contrôle Shape est détectée au cours de la mise à niveau, un avertissement est émis et vous devrez installer la bibliothèque et la référencer à partir de votre projet mis à niveau.

Vous pouvez télécharger Visual Basic Power Packs à la page Microsoft Visual Basic 2005 Power Packs du site Web MSDN.

Voir aussi

Concepts

Éléments graphiques pour les utilisateurs de Visual Basic 6.0