Bonjour,

Je suis nouveau sur ce forum, j'espere que vous me pardonnerez d'eventuels ecarts par rapport aux conventions de ce forum.

Je suis en train de developper une petite application en vb.net sous MS Visual Studio 2005 et je rencontre un petit probleme sur un de mes formulaires.

Le contexte : le formulaire contient un certain nombre d'objets dont un objet DataGridview avec 2 colonnes de texte et x lignes. Le remplissage de ces deux colonnes est fait automatiquement lors de l'acces initial a ce formulaire. L'utilisateur ne peut modifier que le contenu des cellules de la deuxieme colonne.
Le probleme: quand l'utilisateur modifie le contenu d'une cellule, j'aimerais bloquer la sortie de cette cellule si son nouveau contenu est vide.

Il semble que l'evenement myDataGridView.CellLeave n'ait pas d'argument e.Cancel. J'ai donc tente le code suivant pour redonner le focus a ma cellule vide mais il ne marche pas. Apparemment, le contenu de ma cellule est pas encore vide dans mon bloc if/end if...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
Private Sub Gridview_CellsChanged(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles myDataGridView.CellLeave
 
        Dim myRowIndex, myColIndex As Integer
 
        ' Get the coordinates of the selected cell
 
        myRowIndex = myDataGridView.SelectedCells(0).RowIndex
        myColIndex = myDataGridView.SelectedCells(0).ColumnIndex
 
        ' Block the exit by reselecting the cells
 
        If myDataGridView.Rows(myRowIndex).Cells(myColIndex).Value = "" Then
            myDataGridView.Rows(myRowIndex).Cells(myColIndex).Selected = True
        End If
 
    End Sub
Je pense que je pourrais regler le probleme en utilisant un evenement myDataGridView.Lostfocus et en verifiant le contenu de toutes mes cellules mais ca serait 1- moins intuitif et 2- bourrin !
J'appreciais donc toute suggestion pour remedier a ce petit soucis. Merci d'avance.