Aligner le Texte dans la zone de liste déroulante
Je veux aligner mon texte dans la liste déroulante de la boîte de sorte qu'il sera affiché dans le centre de la zone de liste déroulante me dire comment faire cela aussi vous pouvez le voir il est, par défaut, une bordure autour d'une zone de liste déroulante quand il est mis en avant comment puis-je supprimer cette frontière aussi
Veuillez résoudre mes deux problèmes
Grâce
- Vous ne pouvez pas faire cela dans windows contrôle de formulaire spécialement de zone de liste déroulante
- Les deux exigences sont possibles, ce qui fait la TextAlign Centre pour la zone d'édition et pour la liste déroulante. Aussi se débarrasser de rectangle de focus. J'ai partagé un répondre.
Vous devez vous connecter pour publier un commentaire.
Ce n'est pas pris en charge pour la zone de liste déroulante. Les raisons exactes sont perdus dans le brouillard du temps, ComboBox a été autour depuis le début des années nonante, mais a sûrement quelque chose à voir avec la maladresse de l'obtention de texte dans la zone de texte partie à la ligne avec le texte dans la liste déroulante. Dessin personnalisé avec DrawItem ne peut pas résoudre à elle, que seulement affecte l'apparence des éléments de liste déroulante.
Comme une solution de contournement possible, vous pourriez peut-être faire quelque chose de bizarre comme rembourrage de l'élément de chaînes de caractères avec des espaces afin qu'ils look centré. Vous aurez besoin TextRenderer.Savoir measuretext() pour déterminer combien d'espaces à ajouter pour chaque élément.
De la "frontière" dont vous parlez n'est pas une frontière, c'est le rectangle de focus. Vous ne pouvez pas vous débarrasser de ce soit, Windows refuse de vous permettre de créer une INTERFACE utilisateur qui ne montrera pas le contrôle qui a le focus. Les utilisateurs qui préfèrent le clavier à la souris de soins à ce sujet. Aucune solution de contournement pour que l'on.
DrawItem
affecte l'apparence de la valeur sélectionnée de la fermetureComboBox
si leDropDownStyle
estDropDownList
, c'est à dire lorsque leTextBox
n'est pas modifiable.Cet article va vous aider à: http://blog.michaelgillson.org/2010/05/18/left-right-center-where-do-you-align/
Le truc est de mettre la
DrawMode
-Propriété de la zone de liste déroulanteOwnerDrawFixed
ainsi que de vous abonner à son événementDrawItem
.Votre événement doit contenir le code suivant:
Pour aligner à droite les éléments que vous pouvez simplement remplacer
StringAlignment.Center
avecStringAlignment.Far
.this.comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;
Ensemble
RightToLeft
propriététrue
.Il n'a PAS d'inverser la séquence de caractères. Il ne de droite justifie.
Winforms est assez unflexible quand il s'agit de la personnalisation des contrôles. Si vous êtes à la recherche pour davantage de personnalisation de l'expérience utilisateur alors je vous recommande d'envisager de créer une application WPF qui vous permet de définir des contrôles personnalisés. Il faudra un certain travail, donc c'est seulement quelque chose que vous voulez entreprendre si vraiment vous trouvez que c'est nécessaire. Voici un site décent pour vous aider à démarrer http://www.wpftutorial.net/
vous pouvez faire quelque chose comme cela, en ajoutant de l'espace avant l'Affichage des membres de votre Requête
par exemple :
Le post est un peu vieux mais il est peut-être encore la peine de dire:
les deux exigences sont possibles pour Windows Forms zone de liste déroulante:
Edit
de contrôle et de définir lesES_CENTER
style pour le contrôle.Exemple