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? p>
acclamations p>
3 Réponses :
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. P>
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. P>
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 i> 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 / ...
Vous pouvez simplement définir le style de contrôle sur ou p> définir righttoleft = droitetoleft.yes code> si cela ne vous dérange pas du widget de goutte de l'autre côté.
drawmode = OwnerDrawfixed; code> et accroche le
drawitem code> événement,
alors quelque chose comme p>
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.
vous devez "dessiner = system.windows.forms.drawmode.ownerDrawfixed" et
votre propre méthode de dessin comme celle-ci.
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.