grosnull
Messages postés2Date d'inscriptionmardi 1 février 2005StatutMembreDernière intervention13 mars 2011
-
13 mars 2011 à 14:18
grosnull
Messages postés2Date d'inscriptionmardi 1 février 2005StatutMembreDernière intervention13 mars 2011
-
13 mars 2011 à 18:44
Bonjour
Lors de la premiere ouverture de mon formulaire le datagrigview se remplit et le code de coloriage de mes lignes s'execute.(.Rows(i).DefaultCellStyle.BackColor = Color.Red ) Je ferme le formulaire, je le réouvre le DGV se remplit mais mon code de coloriage n'est pas affiché à l'écran. Je clique sur l'entête de la cellule je lance Form_FactureEnCours_Load(Me, New EventArgs) et là les lignes sont affichées en rouge.
J'ai essayé le refresh du form + Dgv mais rien ne fonctionne.
PS (ESSAI) j'ouvre mon form en .showdialog()cela ne marche pas
J'ouvre mon form en .show() et miracle les lignes sont en rouge
mais je veux que mon form soit en Dialog
Merci de vos explications
Code du form:
Public Class Frm_FactureEnCours
Public Sub Form_FactureEnCours_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
Me.SeleQueryFactureEnCoursTableAdapter.Fill(Me.DataSet1.SeleQueryFactureEnCours)
Dim i As Integer
Dim i_aRelancer As Integer = 0
With DGV_FactureEnCours
For i = 0 To .RowCount - 1
'mettre le bon nom du payeur dans la cellule
If .Item(3, i).Value.ToString Like .Item(12, i).Value.ToString Then
.Item(2, i).Value = .Item(3, i).Value.ToString.Trim 'nom du client
Else
.Item(2, i).Value = .Item(12, i).Value.ToString.Trim 'nom attachement
End If
If CDate(Microsoft.VisualBasic.Left(.Item(10,i).Value.ToString, 10)) < CDate(Now.ToShortDateString) Then
'calcul le nbre de relance
i_aRelancer += 1
'ligne a relancer en rouge
'Cette ligne n'est pas affichée
.Rows(i).DefaultCellStyle.BackColor = Color.Red
.Rows(i).DefaultCellStyle.SelectionBackColor = Color.Red
End If
Next
End With
'Ceci est bien affiché:
Me.Text = BindingNavigatorCountItem.Text & " Factures impayées dont " & i_aRelancer & " facture(s) à relancer"
'selectionne la cellule colonne 4 derniere ligne
'Dim nb As Integer = CInt(BindingNavigatorCountItem.Text) - 1
'Me.DGV_FactureEnCours.CurrentCell = DGV_FactureEnCours.Item(0, nb)
Catch ex As Exception
MsgBox(ex.Message & " " & ex.Source)
End Try
End Sub
Private Sub DGV_FactureEnCours_CellMouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DGV_FactureEnCours.CellMouseDoubleClick
Try
'si l'utilisateur double clic sur l'entete de colonne
If e.RowIndex = -1 Then Exit Sub
'permet de faire la mise a jour dans la table si un changement est effectué
Dim s_IDfac As String = DGV_FactureEnCours.Item(0, e.RowIndex).Value.ToString
Dim s_Champ As String = DGV_FactureEnCours.Item(e.ColumnIndex, e.RowIndex).OwningColumn.DataPropertyName.ToString
Dim s_ContenuCellule As String = CStr(DGV_FactureEnCours.Item(e.ColumnIndex, e.RowIndex).FormattedValue)
Dim d_datRegl As String = CStr(DGV_FactureEnCours.Item(10, e.RowIndex).FormattedValue)
If s_IDfac = "" Then Exit Sub
If Not s_ContenuCellule = "" Then 'si le contenu de la cellule n'est pas vide
Select Case s_Champ
Case "IDfac" 'sort on ne peut pas modifier cle primaire
Exit Sub
Case "Payeur", "IDclient" 'ouvre la fiche client
If MsgBox("Vous voulez voir la fiche client ?", MsgBoxStyle.YesNo, "INFORMATION") = MsgBoxResult.Yes Then
IDCLIENT = CInt(DGV_FactureEnCours.Item(1, e.RowIndex).FormattedValue)
Frm_FichesClients.ShowDialog()
End If
Exit Sub
Case "Rel"
'permet de changer de relance
Select Case s_ContenuCellule
Case "0"
s_ContenuCellule = "1"
'ajoute un mois à la date de reglement
d_datRegl = CStr(DateAdd(DateInterval.Month, 1, CDate(d_datRegl)))
Case "1"
s_ContenuCellule = "2"
d_datRegl = CStr(DateAdd(DateInterval.Month, 1, CDate(d_datRegl)))
Case "2"
s_ContenuCellule = "3"
d_datRegl = CStr(DateAdd(DateInterval.Month, 1, CDate(d_datRegl)))
Case "3"
s_ContenuCellule = "3"
End Select
If MsgBox("Vous voulez créer la relance pour ce client ?", MsgBoxStyle.YesNo, "INFORMATION") = MsgBoxResult.Yes Then
'fait la MAJ de la table correspondante
Mycommand.CommandText "UPDATE Tble_Detail_Fac SET REL" & s_ContenuCellule & _
",DatRegl='" & d_datRegl & _
"' WHERE IDfac =" & s_IDfac & ""
MyConnexion.Open()
Mycommand.ExecuteNonQuery()
MyConnexion.Close()
Form_FactureEnCours_Load(Me, New EventArgs)
If MsgBox("Vous voulez imprimer cette relance ?", MsgBoxStyle.YesNo, "INFORMATION") = MsgBoxResult.Yes Then
'TODO faire impression + mis a jour table impression
End If
End If
Exit Sub
Case Else 'autre cas met valeur nulle
s_ContenuCellule = "0"
Exit Sub
End Select
End If
Catch ex As Exception
MyConnexion.Close()
MsgBox(ex.Message & " " & ex.Source)
MsgBox("Une erreur système vient d'être générée. " & vbCrLf _
& "Assurez-vous que tous les champs ont bien été remplis." & vbCrLf _
& "Processus de sauvegarde annulé.", MsgBoxStyle.OkOnly, "ERREUR")
Finally
If Not (MyConnexion Is Nothing) Then MyConnexion.Close()
End Try
End Sub
Private Sub DGV_FactureEnCours_ColumnHeaderMouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DGV_FactureEnCours.ColumnHeaderMouseClick
Form_FactureEnCours_Load(Me, New EventArgs)
End Sub
Private Sub Btn_Retour_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Retour.Click
Me.Close()
End Sub
End Class
A voir également:
Pourquoi mon datagridview ne se remet pas à jour lors de la réouverture du form