Positionnement de label suivant certaines valeurs [Résolu]

Signaler
Messages postés
15
Date d'inscription
mardi 9 juin 2009
Statut
Membre
Dernière intervention
6 septembre 2011
-
atone31
Messages postés
15
Date d'inscription
mardi 9 juin 2009
Statut
Membre
Dernière intervention
6 septembre 2011
-
Bonjour à tous !
Je développe une application sous vb.net et je rencontre un problème.
Voici ce que je souhaite faire .

j'affiche dans une form un datagridview :


n°gachées | date | heure | ecart | pesée | .....

1 23/01/2011 22h30 15 300
2 24/01/2011 0h36 17 350
3 27/01/2011 6h32 12 150
... ... ... .. ..

en cliquant sur un bouton, je récupere les données du datagridview pour les
afficher dans une form (vide)
J'aimerai que l'affichage se génère comme cela :

------------------------------------------------
Numéro du gachée : 1

Date | heure | ecart | pesée | .....

23/01/2011 22h30 15 300
----------------------------------------------------
Numéro du gachée : 2

Date | heure | ecart | pesée | .....

24/01/2011 0h36 17 350
----------------------------------------------------
Numéro du gachée : 3

Date | heure | ecart | pesée | .....

27/01/2011 06h32 12 150
----------------------------------------------------

comment précéder?!
Je n'est pas de problème concernant la récuperation des données, mais je l'ai au niveau du placement des données.

Merci d'avance.
Pour plus d'informations, n'hésiter pas !

14 réponses

Messages postés
1211
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
8
Attention, si tu travailles en pixels, un décalage de 5 est beaucoup trop peu.

Vérifies d'abord que tu es bien en pixels puis essaie avec 50, ensuite ajuste selon ton humeur.


Calade
Messages postés
1211
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
8
Bonjour,

Si je comprends bien ton problème se situe au niveau de l'alignement de tes 4 labels (date, heure, etc...) sous celui contenant le nom des colonnes.

A mon avis le plus simple est d'avoir un label contenant (Numéro du gachée x), un autre contenant les entêtes de colonne en dessous, enfin 4 autres encore en dessous (1 pour la date, 1 pour l'heure, etc...).
Comme ça il te sera facile d'aligner tout cela.

Autre possibilité, mais je ne sais pas si cela est possible en .NET. Remplacer ces 4 colonnes par un DataGridView à 4 colonnes et 1 seule ligne.



Calade
Messages postés
15
Date d'inscription
mardi 9 juin 2009
Statut
Membre
Dernière intervention
6 septembre 2011
1
Re,
Merci "Calade" pour les informations que tu m'as données.
Mais mon problème souligner n'est pas celui là...

En faite ce que je veux faire c'est récupérer les données de mon datagridview pour les afficher dans une autre form. Mais je souhaite décomposer mon datagridview comme l'exemple que j'ai donnée.

Ce n'est pas une question d'alignement.
Disons que pour être un peu plus clair, les données contenu dans la colonne "N°gachée" ne sont pas toujours les mêmes. je veux parcourir ce tableau pour decomposer les données comme ceux-xi... je ne connais donc pas a l'avance combien il y aura de numéro de gachée.; ( sa peu etre simplement 1 ou juska 10 par exemple. tous dépendra c'est contenu dans la colonne N°gachée)

numéro gachée : 1

Date | heure | volume | ecart ..
... ... .... ...
numéro gachée : 2

Date | heure | volume | ecart ..
... ... ... ...
numéro gachée : 3

Date | heure | volume | ecart ..
.... ... .... ...
Etc
Messages postés
1211
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
8
J'avoue que je n'ai toujours pas compris.

J'imagine que les données affichées dans ton DataGrdiView proviennent d'une base de données.
Tu sais donc, soit par le nb d'enregistrements de ton recordset, soit par le nb de lignes de ta grid, le nombre de n° de gachées.

Est-ce que cela répond à ta question ?


Calade
Messages postés
15
Date d'inscription
mardi 9 juin 2009
Statut
Membre
Dernière intervention
6 septembre 2011
1
Non désolé.
Mais je sais récupérer le nombre de numéro de gachées, ce n'est pas un probleme. c'est que dans ma form ou je veux afficher les données du datagridview, je veux detaillée les informtions du n° de gachée N°1 puis ensuite celui du gachées N° 2...etc

Or je ne sais pas comment écrire cela dans ma form. tu comprends ?
Messages postés
1211
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
8
Je crois que je commence à comprendre.

Perso', je partirais du recordset sous-jacent à ta Grid ce sera plus simple.

Ensuite un For... Next/Do While Not EOF... Loop
pour afficher tes différents labels.


Calade
Messages postés
15
Date d'inscription
mardi 9 juin 2009
Statut
Membre
Dernière intervention
6 septembre 2011
1
Ok ok.

En gros je veux detaillée chaque ligne de mon datagridview sous la forme que je t'ai montrée.

Numéro du gachée : ...

Date | heure | volume | ecart ......

Ensuite un For... Next/Do While Not EOF... Loop
pour afficher tes différents labels.

oui je suis d'accord j'y est pensée, mais mon soucy est effectivement ici car je ne voit pas comment positionner mes labels.. si je donne une position dans ma boucle.. ce sera toujours la meme par la suite..
Aurais tu un exemple par hasard
Messages postés
1211
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
8
Pas forcément, pour prendre l'exemple de la propriété top, tu initialises une variable pour la 1ère ligne, puis tu l'incrémentes à chaque nouvelle ligne de 200/300 pixels (ça ça reste à déterminer au coding).

et tu fais MyLabel.Top = intTop

Et tu suis le même sprincipe pour la propriété Left.

Calade
Messages postés
15
Date d'inscription
mardi 9 juin 2009
Statut
Membre
Dernière intervention
6 septembre 2011
1
Ok ok. je chercherai des informations sur ce que tu me dis.

Merci à toi ! je validerai si la réponse que tu m'as donnée est la bonne ;)
Messages postés
15
Date d'inscription
mardi 9 juin 2009
Statut
Membre
Dernière intervention
6 septembre 2011
1
j'ai compris ce qu'il fallait faire.. mais ma boucle m'affiche simplment le numéro de gachées n°1

Dim top As Integer = 295
        Dim left As Integer = 50

        ' on affiche les données décomposées de chaque gachées
        For i As Integer = 1 To max_gachees

            Dim label1 As New Label
            label1.Size = New Size(200, 100)
            label1.Top = top
            label1.Left = left
            label1.Text = "Numéro du gachées :" & i
            Me.Controls.Add(label1)

            top = top + 5

           ' Debug.Print(top)
           ' Debug.Print("i =" & i)
        Next


Vois-tu ou il y aurait le problème...
Messages postés
15
Date d'inscription
mardi 9 juin 2009
Statut
Membre
Dernière intervention
6 septembre 2011
1
Ok !!! Problème résolu pour l'ajout des labels...

Mais je rencontre un autre problème.. quand j'ajoute mes labels si il yen a trop, il ne rentre pas dans la form que j'ai créer.

Comment faire pour que cela s'affiche entièrement.. ou sur deux form par exemple.
Le but étant simplement d'afficher les données puis après de les imprimer. ( j'ai la fonction pour imprimer qui fonctionne mais qui s'applique que sur la form en question)
Messages postés
1211
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
8
Sous VB6, il y avait un contrôle DataRepeater.

Il permettait d'abriter de contenir un ou plusieurs autres contrôles et gérait les scrollbars si nécessaires en fonction de la hauteur que tu donnais au contrôle hôte.

Regarde si l'équivalent existe en .NET, je vais jeter un oeil de mon côté.


Calade
Messages postés
1211
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
8
Bon j'ai trouvé un contrôle TableLayoutPanel dans les contrôles conteneurs.

A toi d'essayer.


Calade
Messages postés
15
Date d'inscription
mardi 9 juin 2009
Statut
Membre
Dernière intervention
6 septembre 2011
1
OK. je te remercie, je vais essayer de trouver.

Anthony