Je souhaite étendre le contrôle System.Windows.Forms.ComboBox avec une propriété ReadOnly, qui affiche le texte de l'élément sélectionné (similaire à une étiquette) lorsque ReadOnly = true. (Je n'aime pas l'aspect désactivé obtenu en réglant Enabled = false)Extend System.Windows.Forms.ComboBox
Comment faire cela en Winforms? C'était très simple dans ASP.NET où tout ce que j'avais à faire était de surcharger la méthode Render. Cela ne semble pas si simple avec Winforms cependant.
D'après ce que je crois que je dois
a) Remplacer la méthode OnPaint
b) Appel this.SetStyle (ControlStyles.UserPaint, true) de sorte que OnPaint est appelée.
Mais maintenant, il semble que je doive faire TOUS les tableaux moi-même. Est-ce vrai? Est-il impossible de laisser la ComboBox de base s'occuper de peindre le contrôle quand ReadOnly = false? De plus, quels ControlStyles devrais-je utiliser?
Puis-je transmettre automatiquement les propriétés et les événements de la zone de liste déroulante via mon contrôle? – Preets
Pas facilement. Vous devrez déléguer les plus intéressants vous-même. Vous pourriez probablement mettre quelque chose ensemble en utilisant la réflexion pour construire automatiquement le code au moment de la compilation, cependant. –