Positionnement de label suivant certaines valeurs

Résolu
atone31 Messages postés 15 Date d'inscription mardi 9 juin 2009 Statut Membre Dernière intervention 6 septembre 2011 - 18 avril 2011 à 11:53
atone31 Messages postés 15 Date d'inscription mardi 9 juin 2009 Statut Membre Dernière intervention 6 septembre 2011 - 18 avril 2011 à 16:42
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

Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
18 avril 2011 à 16:01
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
3
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
18 avril 2011 à 12:04
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
0
atone31 Messages postés 15 Date d'inscription mardi 9 juin 2009 Statut Membre Dernière intervention 6 septembre 2011 1
18 avril 2011 à 14:01
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
0
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
18 avril 2011 à 14:10
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
atone31 Messages postés 15 Date d'inscription mardi 9 juin 2009 Statut Membre Dernière intervention 6 septembre 2011 1
18 avril 2011 à 14:16
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 ?
0
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
18 avril 2011 à 14:24
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
0
atone31 Messages postés 15 Date d'inscription mardi 9 juin 2009 Statut Membre Dernière intervention 6 septembre 2011 1
18 avril 2011 à 14:28
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
0
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
18 avril 2011 à 14:34
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
0
atone31 Messages postés 15 Date d'inscription mardi 9 juin 2009 Statut Membre Dernière intervention 6 septembre 2011 1
18 avril 2011 à 14:36
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 ;)
0
atone31 Messages postés 15 Date d'inscription mardi 9 juin 2009 Statut Membre Dernière intervention 6 septembre 2011 1
18 avril 2011 à 15:57
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...
0
atone31 Messages postés 15 Date d'inscription mardi 9 juin 2009 Statut Membre Dernière intervention 6 septembre 2011 1
18 avril 2011 à 16:34
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)
0
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
18 avril 2011 à 16:38
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
0
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
18 avril 2011 à 16:42
Bon j'ai trouvé un contrôle TableLayoutPanel dans les contrôles conteneurs.

A toi d'essayer.


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

Anthony
0