Décalage de Cellule dans un tableLayoutPanel

ManuAntibes Messages postés 491 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 18 novembre 2021 - 8 mars 2019 à 08:42
ManuAntibes Messages postés 491 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 18 novembre 2021 - 10 mars 2019 à 06:33
Bonjour,


lorsque je rempli un TableLayoutPanel, il arrive que deux cellules se mettent au même endroit, du coup l'une des deux se décale, pour la c'est normal.


Je ne veux pas que deux cellules soient au même endroit. j'ai bien mis des vérifications lors de l'ajout dans la base de donnée.

mais j'aimerai avoir une sécurité de plus, pour cela j'ai codé si une cellule se décale , elle devient Rouge.

 Sub VerifPasDeDecalage()
        Dim Rt As DataRowView
        Dim DDRTFL, DDTLP As Date
        Me.TableLayoutPanel1.Refresh()
        For Each c In Me.TableLayoutPanel1.Controls
            If TypeOf c Is Classe_RTFLabel Then
                Me.Table_CoursTableAdapter.FillByID(Me.Database_CréaPlanningDataSet.Table_Cours, c.tag)

                For x = 0 To Me.Table_CoursBindingSource.Count - 1
                    Rt = CType(Me.Table_CoursBindingSource.Item((x)), DataRowView) 'recupere valeur de la ligne dans la colonne  des numeros de magasin
                    DDRTFL = CStr(Rt.Row.Item(4))
                    Select Case (Me.TableLayoutPanel1.GetColumn(c))
                        Case 1 : DDTLP = Label_Lundi.Tag
                        Case 2 : DDTLP = Label_Mardi.Tag
                        Case 3 : DDTLP = Label_Mercredi.Tag
                        Case 4 : DDTLP = Label_Jeudi.Tag
                        Case 5 : DDTLP = Label_Vendredi.Tag
                    End Select

                    If DDRTFL = DDTLP Then
                    Else
                        c.backcolor = Color.Red
                    End If
                Next x
            End If
        Next c
    End Sub




dans mon exemple, j'ai mis une erreur dans la base de donnee.
1) CoursTechnologie; Emmanuel; Classe1; 11/03/19; 14:30; 15:30
2) Cours Françaix; Helene ; Classe1; 11/03/19; 14:30; 15:30
3) Cours Français; Helene; Classe1; 11/03/19; 15:30; 16:30

sur mon TableLayoutPanel, il y a bien la décalage,




Sauf lorsque je lis le code en débogage, pour lui tout est à lundi.
Je ne comprends pas, il affiche à l'écran un truc sur mardi , et pour le code pas de probleme tous est a lundi .!!!!

qu est ce que je ne fais pas bien dans le code ?????

1 réponse

ManuAntibes Messages postés 491 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 18 novembre 2021 5
10 mars 2019 à 06:33
Salut à tous

Bon j'ai trouvé, il faut utiliser GetPositionFromControl.

Me.TableLayoutPanel1.GetPositionFromControl(c).Column
0
Rejoignez-nous