IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Addrow table layout panel


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 172
    Points : 49
    Points
    49
    Par défaut Addrow table layout panel
    Bonjour à tous,
    J'ai un problème lorsque j'ajoute des données dans mon tablelayoutpanel(ce n'est peut etre pas la meilleure solution pour ce que je souhaite faire)

    En fait je souhaite afficher un calendrier sportif comme suit:
    Equipe1 score - score Equipe 2. Pour le moment les cases score sont vides.

    Donc j'ai fait un tablelayoutpanel avec 5 colonnes redimensionnables automatiquement. J'ai mis autosize à true, et addrow pour le autosizemode.

    Le problème est que ça ne s'ajoute pas comme je le souhaiterais, ça ne respecte pas les arguments que je passe dans la méthode Add():

    Mon code:
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
                                int i = 0;
                                while (liste.Read())
                                {
                                    if (i < 8)
                                    {
                                        Label equipe_home = new Label();
                                        equipe_home.Text = liste.GetString(0);
     
                                        this.tableLayoutPanel1.Controls.Add(equipe_home,0,i);//On a mis l'équipe à domicile
     
                                        Label score_home = new Label();
                                        score_home.Text = "a";
                                        this.tableLayoutPanel1.Controls.Add(score_home,1,i);//On a mis le score de l'équipe à domicile
     
                                        Label versus = new Label();
                                        versus.Text = "-";
                                        this.tableLayoutPanel1.Controls.Add(versus,2,i);//On ajoute le versus
     
                                        Label score_away = new Label();
                                        score_away.Text = "z";
                                        this.tableLayoutPanel1.Controls.Add(score_away,3,i);//Score de l'équipe visiteuse
     
                                        Label nom_away = new Label();
                                        nom_away.Text = liste.GetString(1);
                                        this.tableLayoutPanel1.Controls.Add(nom_away,4,i);//Nom de l'équipe visiteuse
                                    }
                                    i++;
                                }
    J'ai mis "a" et "z" dans les cases de score pour mieux voir le problème:

    Voici le rendu:


    Merci d'avance

  2. #2
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 388
    Points : 2 999
    Points
    2 999
    Par défaut
    Le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for (int i = 0; i < 8; i++)
        for (int j = 0; j < 5; j++)
            tableLayoutPanel1.Controls.Add(new Label() { Text = string.Format("row: {0} Col: {1}", i, j) }, j, i);
    fonctionne très bien.

    Le souci ne viendrait-il pas des valeurs que tu récupères et que tu veux afficher ?

    Essaye de faire la même boucle mais en affichant les valeurs dans un MessageBox pour voir ce que ça donne.
    Évite aussi de nommer tes TextBox, et essaye d'utiliser la même syntaxe que moi.

  3. #3
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 172
    Points : 49
    Points
    49
    Par défaut
    Bonjour,
    Le problème avec ton code c'est qu'il ne récupère pas les valeurs de la base de donnée(à moins que je ne me trompe).

    Sinon j'ai pas trop saisi ce que tu voulais que je teste dans un message box.
    J'ai décidemment du mal avec ce détail.

    Merci

  4. #4
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 388
    Points : 2 999
    Points
    2 999
    Par défaut
    si tu fais comme ça:

    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
    18
    19
    20
    21
    22
    23
    24
    25
     
    int i = 0;
    while (i < 8)
    {
    	Label equipe_home = new Label();
    	equipe_home.Text = "ED";
    	this.tableLayoutPanel1.Controls.Add(equipe_home, 0, i);//On a mis l'équipe à domicile
     
    	Label score_home = new Label();
    	score_home.Text = "a";
    	this.tableLayoutPanel1.Controls.Add(score_home, 1, i);//On a mis le score de l'équipe à domicile
     
    	Label versus = new Label();
    	versus.Text = "-";
    	this.tableLayoutPanel1.Controls.Add(versus, 2, i);//On ajoute le versus
     
    	Label score_away = new Label();
    	score_away.Text = "z";
    	this.tableLayoutPanel1.Controls.Add(score_away, 3, i);//Score de l'équipe visiteuse
     
    	Label nom_away = new Label();
    	nom_away.Text = "EV";
    	this.tableLayoutPanel1.Controls.Add(nom_away, 4, i);//Nom de l'équipe visiteuse
    	i++;
    }
    est-ce que ça donne le résultat escompté ?

    Là, je ne prends aucune valeur dans ta base de données ... évidemment, je ne l'ai pas

    C'est juste pour voir si ça peut venir de la lecture de la base

    Je viens de tester, ici ça fonctionne sans problème.

    Ce que je te disais, c'était d'afficher le contenu de chaque valeur lue dans la base avant de la mettre dans le label correspondant.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MessageBox.Show(liste.GetString(0));
    equipe_home.Text = liste.GetString(0);

  5. #5
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 172
    Points : 49
    Points
    49
    Par défaut
    Non toujours le meme problème, une case vide se met dans la deuxième case de la première ligne ce qui décale toutes les autres de une. Sinon l'ordre est bon.

  6. #6
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    J'ai un problème lorsque j'ajoute des données dans mon tablelayoutpanel(ce n'est peut etre pas la meilleure solution pour ce que je souhaite faire)

    En fait je souhaite afficher un calendrier sportif comme suit:
    Equipe1 score - score Equipe 2. Pour le moment les cases score sont vides.

    Donc j'ai fait un tablelayoutpanel avec 5 colonnes redimensionnables automatiquement. J'ai mis autosize à true, et addrow pour le autosizemode.
    Et pourquoi tu n'utilise pas simplement un datagridview ?
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

Discussions similaires

  1. [Débutant] Impression Table Layout Panel et son contenu
    Par Vincent32 dans le forum VB.NET
    Réponses: 25
    Dernier message: 06/04/2017, 13h32
  2. [Débutant] Exportation des Table Layout Panel vers PDF- VB .NET
    Par Aiman.elmachi dans le forum VB.NET
    Réponses: 0
    Dernier message: 12/06/2014, 11h26
  3. table layout panel en c#
    Par zouarimariem dans le forum Windows Forms
    Réponses: 0
    Dernier message: 10/04/2012, 00h09
  4. Design Table Layout Panel
    Par r0seBa dans le forum C#
    Réponses: 1
    Dernier message: 25/06/2010, 13h20
  5. [Visual Web] Boite de dialogue et layout panel
    Par diamonds dans le forum NetBeans
    Réponses: 3
    Dernier message: 29/01/2008, 18h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo