Partager via


Comment : exécuter plusieurs actions sur un objet

Mise à jour : novembre 2007

Dans Visual Basic, vous devez généralement spécifier un objet dans chaque instruction qui appelle l'une de ses méthodes ou qui accède à l'une de ses propriétés. Toutefois, si un ensemble d'instructions fonctionne sur le même objet, vous pouvez utiliser une structure With...End With pour spécifier une seule fois l'objet pour toutes les instructions. De cette façon, vos procédures s'exécutent plus vite et vous ne devez pas retaper de texte.

Exemple

L'exemple suivant définit la couleur de premier plan et le style de police d'un Label en fonction de la valeur d'un argument de procédure.

Imports draw = System.Drawing
' The preceding statement must appear at the beginning of the source file.
Dim alertLabel As New System.Windows.Forms.Label
Sub alertUser(ByVal value As Long)
    With alertLabel
        If value = 0 Then
            .ForeColor = draw.Color.Red
            .Font = New draw.Font(.Font, draw.FontStyle.Bold Or draw.FontStyle.Italic)
        Else
            .Forecolor = draw.Color.Black
            .Font = New draw.Font(.Font, draw.FontStyle.Regular)
        End If
    End With
End Sub

Notez l'utilisation de Or, opérateur (Visual Basic) pour associer des styles de police. Cette utilisation spécifie la combinaison souhaitée d'indicateurs binaires. And, opérateur (Visual Basic) aurait produit 0 parce que tous les membres d'énumération FontStyle utilisent des bits différents.

Notez également l'utilisation de Imports, instruction (espace de noms et type .NET) pour définir l'alias d'importation draw qui raccourcit et simplifie la lecture de chaque référence aux membres System.Drawing.

Vous pouvez également imbriquer des instructions With...End With les unes à l'intérieur des autres, comme dans le code suivant :

Sub setupForm()
    Dim anotherForm As New System.Windows.Forms.Form
    Dim button1 As New System.Windows.Forms.Button
    With anotherForm
        .Show()
        .Top = 250
        .Left = 250
        .ForeColor = System.Drawing.Color.LightBlue
        .BackColor = System.Drawing.Color.DarkBlue
        .Controls.Add(button1)
        With .Controls.Item(1)
            .BackColor = System.Drawing.Color.Thistle
            .Text = "Text on button1"
        End With
    End With
End Sub

Toutefois, à l'intérieur de l'instruction With, la syntaxe fait référence à l'objet imbriqué ; les propriétés de l'objet de l'instruction With extérieure ne sont pas définies.

Voir aussi

Tâches

Comment : transférer un contrôle hors d'une structure de contrôle

Comment : supprimer une ressource système

Comment : accélérer l'accès à un objet comportant un chemin d'accès de qualification long

Concepts

Structures de décision

Structures de boucle

Autres structures de contrôle

Structures de contrôle imbriquées

Référence

With...End With, instruction (Visual Basic)

Autres ressources

Flux de contrôle en Visual Basic