7
votes

Droit justifié Combobox en C #

Par défaut, les éléments du C # Combobox sont laissés alignés. Existe-t-il des options disponibles pour modifier cette justification à partir de la méthode du drawitem primordial et définissant le Drawmode de ComboBox -> Drawmode.OwnerDrawfixed?

acclamations


1 commentaires

J'ai ajouté une balise Winforms à votre question depuis que je suppose du fait que vous avez mentionné Drawitem que vous ne parlez pas de WPF. Cela n'a rien à voir avec C #, mais je ne voulais pas supprimer une étiquette.


3 Réponses :


2
votes

Dans WPF, ce serait aussi simple que de spécifier un élémentContainerStyle. Sous Windows forme c'est un peu plus délicieux. Sans dessin personnalisé, vous pouvez définir la propriété RightTolef sur le ComboBox, mais cela affecterait malheureusement également le bouton déroulant.

Etant donné que Windows Forms utilise une combinaison natale et Windows n'a pas de style ComboBox comme ES_RIGHT qui affecte l'alignement du texte, je pense que votre seule option est de recourir au tirage au propriétaire. Ce serait probablement une bonne idée de dériver une classe de Combobox et d'ajouter une propriété textalignment ou quelque chose du genre. Ensuite, vous n'appliqueriez que votre dessin si textalignment était centré ou aligné à droite.


3 commentaires

Salut ... Dans ce cas, comment puis-je appliquer le textalignement au contrôle? Aspectez-vous au format String ici?


Non, je dis que vous devez créer un contrôle qui dérive de Combobox et ajoutez une propriété nouvelle appelée textalignment. Ensuite, dans votre méthode ONDRAWITEM, vous pouvez prendre en compte cette propriété plutôt que sur le codage durement d'un alignement.


Exemple: msdn.microsoft.com/fr- US / Bibliothèque / ...



4
votes

Vous pouvez simplement définir le style de contrôle sur righttoleft = droitetoleft.yes si cela ne vous dérange pas du widget de goutte de l'autre côté.

ou

définir drawmode = OwnerDrawfixed; et accroche le drawitem événement, alors quelque chose comme xxx


2 commentaires

Salut ... Il n'y a pas de différence que je puisse voir même après avoir mis en œuvre ce gestionnaire.


Je ne sais pas pourquoi, vous êtes-vous rappelé de définir la propriété du Drawmode de la boîte déroulante à OwnerDrawfixed. Et avez-vous des éléments dans la liste.



1
votes

vous devez "dessiner = system.windows.forms.drawmode.ownerDrawfixed" et votre propre méthode de dessin comme celle-ci. XXX


0 commentaires