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...
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 !
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
J'appreciais donc toute suggestion pour remedier a ce petit soucis. Merci d'avance.
Partager