Remplacer la méthode Add d’un ComboBox

Est-il possible de remplacer la méthode Add () de Combobx?

La raison pour laquelle je demande ceci est que je veux append les objects de classe à ma combbox mais pour l’affichage je veux montrer le nom de mes objects.

ainsi par exemple: combbox.Items.Add(myClassObject)

mais ce que nous voyons réellement dans le combbobx comme le montre l’utilisateur sous la forme myClassObject.Name

Si j’ai bien compris votre demande, vous pouvez le faire en utilisant la liaison:

Pseudocode:

 comboBox.DataSource = collectionOfData; comboBox.DisplayMember = "Name"; 

Les données seront ajoutées à la combo mais visualisées sera la propriété Name des “données”.

Tout cela à l’aide de la propriété DisplayMember .

Étant donné que ComboBox utilise la méthode d’object ToSsortingng() qui est ajoutée dans les collections d’éléments à afficher sur l’interface utilisateur, substituez ToSsortingng de myClassObject pour renvoyer ce que vous voulez, c’est simple:

 class myClassObject { public override ssortingng ToSsortingng() { return "whatever you want"; } } 

De cette façon, vous ne touchez pas le contrôle ComboBox

Vous pouvez développer la extension Method

 public static class Extension { public static void Add(this ComboBox, myClassObject value) { ... } } 

Créez un nouveau contrôle qui étend le contrôle de la liste déroulante.
Remplacez ensuite la méthode Add .