2009-12-16 9 views
1

Je cherche à créer un menu déroulant dans mon application Windows de forme qui est similaire au menu déroulant en html par exemple etc ..C# Windows Form html comme menu déroulant

Je dois chaque entrée pour afficher le texte à l'utilisateur, mais stocker une valeur à utiliser dans mon application.

Je suis actuellement en train d'utiliser une combobox mais cela ne semble pas me permettre de stocker une valeur associée pour chaque entrée.

Merci d'avance.

Répondre

2

Vous pouvez stocker n'importe quoi dans une zone de liste déroulante, y compris une instance d'objet contenant la valeur dont vous avez besoin, plus la chaîne. Tout ce que vous devez faire est de remplacer ToString dans la classe que vous utilisez comme élément.

class Item { 
    public string Name = ""; 
    public int Value = 0; 

    public Item(string name, int value) { 
     this.Name = name; 
     this.Value = value; 
    } 

    public override string ToString() { 
     return this.Name; 
    } 
} 

Puis:

 for (int i = 0; i < 10; i++) { 
      Item item = new Item("Item no. " + i.ToString(), i); 
      comboBox1.Items.Add(item); 
     } 

Lorsque vous travaillez avec comboBox1.Items tout ce que vous devez faire est de jeter les articles à Item et vous êtes tous ensemble.

2

A ComboBox ne vous permettent de stocker autant de valeurs associées que vous voulez - bind à une collection de vos objets (qui peuvent autant de propriétés que vous), et utiliser DisplayMember, ValueMember et SelectedValue propriétés du ComboBox pour désigner la propriété qui fournira le texte à afficher et la propriété qui fournira la valeur pour SelectedValue.