none
datagridview comboboxcell click en dehors de la cellule RRS feed

  • Discussion générale

  • Bonjour,

    Je passe de VB6 flexgrid à VB.Net DGV... donc débutant.

    J'ai réussi à convertir mon programme à 99% mais il me reste une curiosité dans la gestion d'une comboboxcell, insérée dynamiquement lorsque l'on clique sur une celllule d'une colonne comportant des textboxcells :

    - si l'on clique sur une valeur dans la liste déroulante de la combobox, les événements DGV.click et CellValueChanged s'enchaînent bien, OK

    - par contre, après avoir cliqué dans une textboxcell et après que la comboboxcell s'affiche sa liste déroulante, si l'on clique sur une autre cellule que celle de la combobox, rien ne se passe dans mon programme au premier click, seule la combobox se referme mais alors elle reste avec son bouton flèche vers le bas et montre un contenu vide "hilighté" bien qu'il n'y ait pas de valeur vide dans la liste. Il faut un deuxième click dans l'autre cellule pour que la combobox disparaisse mais en laissant une valeur vide.

    - quand je dis rien ne se passe dans mon programme, en fait seul l'événement mousemove de la DGV est activé, pas de mousedown et encore moins de DGV.click ni CellLeave ni CellValueChanged, c'est pour cela que mon programme ne réagit pas,

    - or si je mets des points d'arrêts, en lançant le programme sous IDE, dans les différents événements ci-dessus, ces événements surgissent bien et le programme fonctionne!

    Pourquoi ces événements ne surgissent pas quand il n'y a pas de points d'arrêt? (j'ai mis une instruction debug.print "nom de l'événement" dans chaque Sub pour vérifier que le programme passe bien par là)

    Question : Comment faire pour détecter le changement de valeur de la comboboxcell quand on clique ailleurs que sur elle?

    (j'ai bien mis l'instruction

    DataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit)

    dans l'événement DGV_CurrentCellDirtyStateChanged)

    Honte à moi, je vais poser un deuxième problème dans le même sujet, mais sans doute connexe:

    - l'événement CellValueChanged ne surgit pas si la valeur choisie dans la liste déroulante est la valeur vide "" alors que l'ancienne valeur est non vide ("xxx.."), il surgit seulement lorsque l'on passe de "" à "xxx.." ou de "xxx.." à "yyy..."

    Merci par avance pour toute aide

    Cordialement

    mercredi 4 janvier 2012 11:17

Toutes les réponses