Partager via


Comment : créer une table de correspondance pour un contrôle ComboBox, ListBox ou CheckedListBox Windows Forms

Mise à jour : novembre 2007

Il est parfois utile d'afficher les données sous un format convivial dans un Windows Form, mais de les stocker sous un format plus pertinent pour votre programme. Par exemple, un formulaire de commande de produits alimentaires peut présenter les éléments de menu par leur nom dans une zone de liste. Toutefois, la table de données dans laquelle est enregistrée la commande peut contenir les numéros d'ID uniques représentant les produits alimentaires. Les tableaux suivants fournissent un exemple de stockage et d'affichage de données du formulaire de commande de produits alimentaires.

OrderDetailsTable

OrderID

ItemID

Quantity

4085

12

1

4086

13

3

ItemTable

ID

Nom

12

Potato

13

Chicken

Dans ce scénario, une seule table, OrderDetailsTable, stocke les informations qu'il est réellement nécessaire d'afficher et d'enregistrer. Cependant, afin d'économiser de l'espace, elle stocke ces informations de façon plutôt insolite. L'autre table, ItemTable, contient uniquement des informations relatives à l'apparence sur les équivalences entre numéro d'ID et nom de produit alimentaire, mais rien en revanche sur les véritables commandes de produits alimentaires.

ItemTable est connectée au contrôle ComboBox, ListBox ou CheckedListBox par l'intermédiaire de trois propriétés. La propriété DataSource contient le nom de cette table. La propriété DisplayMember comprend la colonne de données de la table à afficher dans le contrôle (nom de produit alimentaire). La propriété ValueMember comporte la colonne de données de la table contenant les informations stockées (le numéro d'ID).

OrderDetailsTable est connectée au contrôle par sa collection de liaisons, accessible via la propriété DataBindings. En ajoutant un objet de liaison à la collection, vous connectez une propriété du contrôle à une donnée membre spécifique (la colonne des numéros d'ID) d'une source de données (OrderDetailsTable). Lorsqu'une sélection est effectuée dans le contrôle, c'est dans cette table que l'entrée du formulaire est enregistrée.

Pour créer une table de correspondance

  1. Ajoutez un contrôle ComboBox, ListBox ou CheckedListBox au formulaire.

  2. Connectez-vous à la source de données.

  3. Établissez une relation de données entre les deux tables.

  4. Définissez les propriétés suivantes. Ces propriétés peuvent être définies dans le code ou dans le concepteur.

    Propriété

    Valeur

    DataSource

    Table qui contient des informations sur les équivalences entre un numéro d'ID et un article. Dans l'exemple précédent, il s'agit de la table ItemTable.

    DisplayMember

    Colonne de la table de source de données que vous souhaitez afficher dans le contrôle. Dans l'exemple précédent, il s'agit de la colonne "Name" (à définir dans le code, en utilisant des guillemets).

    ValueMember

    Colonne de la table source de données contenant les informations stockées. Dans l'exemple précédent, il s'agit de la colonne "ID" (à définir dans le code, en utilisant des guillemets).

  5. Dans une procédure, appelez la méthode Add de la classe ControlBindingsCollection pour lier la propriété SelectedValue du contrôle à la table dans laquelle sont enregistrées les données entrées dans le formulaire. Vous pouvez également effectuer cette opération dans le Concepteur plutôt que dans le code ; pour cela, accédez à la propriété DataBindings du contrôle dans la fenêtre Propriétés. Dans le scénario précédent, il s'agit de OrderDetailsTable et la colonne est "ItemID".

    ListBox1.DataBindings.Add("SelectedValue", OrderDetailsTable, "ItemID")
    
    listBox1.DataBindings.Add("SelectedValue", OrderDetailsTable, "ItemID");
    
    listBox1.get_DataBindings().Add("SelectedValue", OrderDetailsTable, "ItemID");
    

Voir aussi

Concepts

Liaison de données et Windows Forms

Référence

Vue d'ensemble du contrôle ListBox (Windows Forms)

Vue d'ensemble du contrôle ComboBox (Windows Forms)

Vue d'ensemble du contrôle CheckedListBox (Windows Forms)

Autres ressources

Contrôles Windows Forms utilisés pour l'affichage de listes d'options