-
datagridview et combobox
J'ai une question un peu con mais qui me pose quand même problème.
J'ai une datagrid avec une colonne contenant des combobox. Jusque là tout va bien :lol: . Mon problèmes c'est que pour qu'un des combobox se déplie je suis obligé de cliquer deux fois, ce qui est quand même bien chiant.
J'ai essayé de mettre le focus dessus mais la fonction focus() n'est pas disponible pour les cellCombobox.
Merci d'avance si quelqu'un connait une solution.
-
salut,
Euuuh, j'ai le meme probleme !!! :mouarf: :aie:
Et je me demande aussi comment creer un evenement sur le changement de valeur de ce cellCombobox ??
Merci
-
Bonjour,
Quelle valeur est définie pour EditMode dans votre Datagrid ?
-
Chez moi le EditMode est en EditOnKeyStrokeOrF2.
-
Salut,
j'ai testé ave "EditOnEnter" et ça fonctionne !!
-
Honte sur moi. :oops:
J'avais cru que le OnEnter c'était pour quand on appuie sur la touche Enter et pas quand on "entre" sur le composant.
Désolé pour le dérangement et merci beaucoup.
PS : je me doutais bien que c'était un truc tout bête et bien con de ma part.
-
Oui le "EditOnEnter" est parfait pour résoudre ce problème. Mais il peu également amener de nouveaux "soucis".
Dans mon cas, mon datagridview contient des combobox et des champs texte normaux. Je test la validité d'une ligne avec un "RowValidating" et j'affiche un message à l'utilisateur si il y a une erreur afin qu'il puisse corriger cette erreur. Mais avec le "EditOnEnter", s’il clique sur une autre case d'une autre ligne avant la validation, alors la nouvelle cellule cliqué rentre en mode édition, et ensuite seulement la précédente ligne appel la méthode "RowValidating". Je me trouve donc avec mon message d'erreur, une ligne pas valide, et l'édition dans une autre ligne. Résultat : tout est bloqué car si une ligne n'est pas validé, on ne peu travailler sur les autres lignes, et il est même impossible de revenir travailler dans la ligne non valide ... :king:
J'ai aussi constaté un autre "soucis" : impossible de supprimer une ligne en la sélectionnant avec un clique sur l'entête de ligne puis un appuis sur la touche supprimer. Ceci car quand on clique sur l'entête de ligne, la première cellule rentre directement en mode édition.
Donc pour supprimer la ligne, il faut soit ajouter un bouton sur la ligne, soit ajouter un "ContextMenuStrip" sur le clique droit du clique sur l'entête de ligne, puis appeler une methode pour supprimer la ligne.
Après de nombreux tests, impossible de corriger ces bugs avec ce fameux mode "EditOnEnter". Donc pour le moment, je reste avec ces combobox où il faut cliquer 2 fois (et encore, c'est 2 fois mais pas trop vite, sinon le programme ne réagis pas ...). Si quelqu'un à une solution ...
Il faudrait éventuellement une méthode semblable à dtg.beginedit, qui "déplie" un pop-up d'un datagridV