Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez aussi afficher la version anglaise dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte.
Traduction
Anglais
Nous recommandons d’utiliser Visual Studio 2017
Cette documentation est archivée et n’est pas conservée.

Comment : exécuter plusieurs actions sur un objet (Visual Basic)

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.

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.

Afficher: