Repositionner le DropDownList d'un combobox [Résolu]

Signaler
Messages postés
90
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
1 février 2011
-
cs_Tropic
Messages postés
90
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
1 février 2011
-
Bonjours!

C'est un combobox de DataGridView (DataGridViewComboBoxColumn)
dont j'ai redimensionné le DropDownWidth.

Lorsque le DropDownList s'affiche, il est aligné à gauche
par rapport à la colonne de la grille (DataGridView).
Je voudrai l'aligner à droite.

La raison est que mon DropDownList déborde de l'écran,
et le Vscroll n'est plus visible.

Une idée!

Merci

7 réponses

Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
10
Ah zut pour le second lien... C'était ici. Mais bon c'est en fait à 90% le même code.

En quoi le code VB.NET ne fonctionne pas ? Il n'aligne que le texte de la liste sans aligner la liste avec la combo ?

La liste a aussi un handle. C'est celui qui est utilisé pour aligner le texte dans la liste. Il se récupère en utilisant GetComboBoxInfo qui renvoie une COMBOBOXINFO ayant un champ hwndList.

Tu dois effectivement pouvoir faire un MoveWindow dessus, mais bon c'est quand même assez risqué (Calcul de la bonne position pas évidente).
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
10
Salut,

Regarde par ici et par éventuellement par là (Même chose en C#), quoique je ne sois pas sûr que ce soit suffisant pour ton problème.

[private joke]
Attention, ce sont des fonctions classiques, pas du COM.
joke
Messages postés
90
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
1 février 2011

Salut,
Les deux lien pointes vers la même page???

Mais bon, rien chez eux.
j'ai bien vu un code qui utilise MoveWindow, mais c'est tout le combox
qui se déplace et non le DropDownList

D'ailleurs, est ce qu'un DropDownList a un handle
Merci tout de même.

A moitié pardonné
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
10
Voilà un code C# avec SetWindowPos plutôt que MoveWindow. Il récupère bien le handle sur la liste avec la méthode de mon précédent poste (Sauf qu'il utilise un message CB_GETCOMBOBOXINFO au lieu d'appeler GetComboBoxInfo, ce qui revient au même).
Messages postés
90
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
1 février 2011

Merci rt15

C'est le cadre du DropDownList que je veux déplacer à gauche et non le texte
Mai je pense que j'ai tous les éléments en main pour me dépatouiller
Je confirmerai plus tard

merci encore
Messages postés
90
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
1 février 2011

Bon j'ai mon alignement correct, juste un petit souci esthétique.
j'attend l'évènement .DropDown pour redéplacer mon DropDownList.
Le problême est qu'il s'affiche avant est se déplace ensuite

J'ai mis en place une procédure Hook, mais je ne sais pas quoi
attendre comme message
mjm
Messages postés
90
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
1 février 2011

Même souci en interceptant le message CBN_DROPDOWN (Hook)
On voit le sursaut du DropDownList. je vais m'en contenter pour l'instant.
Si quelq'un passe par là et connais la solution!!!

Et encore merci rt15, je tournait en rond en cherchant DropDownList, le COMBOBOXINFO m'a bien aidé