Décalage de Cellule dans un tableLayoutPanel

Messages postés
488
Date d'inscription
mardi 24 octobre 2000
Statut
Membre
Dernière intervention
23 mars 2019
- - Dernière réponse : ManuAntibes
Messages postés
488
Date d'inscription
mardi 24 octobre 2000
Statut
Membre
Dernière intervention
23 mars 2019
- 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 ?????
Afficher la suite 

Votre réponse

1 réponse

Messages postés
488
Date d'inscription
mardi 24 octobre 2000
Statut
Membre
Dernière intervention
23 mars 2019
3
0
Merci
Salut à tous

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

Me.TableLayoutPanel1.GetPositionFromControl(c).Column
Commenter la réponse de ManuAntibes