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 :

Ajuster la taille d'une DatagridView et toolstrippanel


Sujet :

Windows Forms

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 12
    Points : 1
    Points
    1
    Par défaut Ajuster la taille d'une DatagridView et toolstrippanel
    Bonsoir à tous,
    une seule chose à la bouche : "à l'aide !!!"

    je commence en windows form et j'ai des problèmes pour ajuster la taille de ma datagridview et de mes autres panels.

    J'essaie de faire ajuster la taille de ces éléments quand j'augmente la taille de la fenêtre grâce à la souris.

    J'ai modifié les anchors, les docks les autoresize etc... RIEN !!!

    J'ai regardé sur la doc, les seules fonctions automatiques sont là pour ajuster la taille des lignes et colonnes en fonction de leur contenu.

    Je ne sais plus quoi faire;
    aidez moi svp

  2. #2
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    J'ai modifié les anchors, les docks les autoresize etc... RIEN !!!
    Rien du tout ou pas ce que tu voulais ?

    Si tu veux une fonctionalité de type "Zoom", dans lequel le pourcentage de zoom correspond au rapport entre la taille initiale de la fenete et la taille actuelle, c'est malheureusement impossible.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  3. #3
    Expert confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 025
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 025
    Points : 5 462
    Points
    5 462
    Par défaut
    Le dock.Fill va te permettre de prendre absolument toute la place de ton conteneur parent, et les anchors te permettent de suivre la taille... Donc à mon avis le problème vient du conteneur parent direct de ta datagridView. Il faut que lui aussi est les bonnes propriétés.
    Au pires mets nous le code du designer.

  4. #4
    Nouveau Candidat au Club
    Femme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 12
    Points : 1
    Points
    1
    Par défaut
    bonjour à tous
    non je ne souhaite pas zoomer,
    je souhaite simplement agrandir la taille de mes colonnes et augmenter le nombre de lignelorsque j'agrandis la fenêtre avec la souris
    j'essaie de vous envoyer le code

  5. #5
    Nouveau Candidat au Club
    Femme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 12
    Points : 1
    Points
    1
    Par défaut
    voilà le code en pièce jointe
    Fichiers attachés Fichiers attachés

  6. #6
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    je souhaite simplement agrandir la taille de mes colonnes et augmenter le nombre de lignelorsque j'agrandis la fenêtre avec la souris
    j'essaie de vous envoyer le code
    pour le nombre de lignes, cela se fera automatiquement en jouant sur les propriétés Dock et/ou Anchor des controls (ne pas oublier les controls parents).

    Pour les tailles des colonnes, il faudra gérer gérer l'event Resize du DataGridView pour agrandir les colonnes en fonction du ratio Width_actuelle/Width_précédente, puis affecter à Width_précédente la valeur de Width_actuelle.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  7. #7
    Nouveau Candidat au Club
    Femme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 12
    Points : 1
    Points
    1
    Par défaut
    mouais.... j'ai déjà pas mal tenté de bouger ces paramètres, sans succès.
    Dans les événements de la win form, est ce que sizechange
    gère l'agrandissement de la fenêtre ?
    Auquel cas, je pourrais créer une méthode où je fais à la main les anchor et dock qui conviennent pour obtenir la taille souhaitée des fenêtres et le nombre de lignes...
    Qu'en pensez-vous ?
    merci par avance pour vos réponses

  8. #8
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    mouais.... j'ai déjà pas mal tenté de bouger ces paramètres, sans succès.
    En mettant le DataGridView et toute la lignée de ses parents en Dock=Fill (et les autres panels en Dock=Top,Bottom, Right ou Left), la taille du DataGridView et de ses parents devrait augmenter/diminuer suivant les variations de taille de la forme.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  9. #9
    Nouveau Candidat au Club
    Femme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 12
    Points : 1
    Points
    1
    Par défaut
    oui merci, le problème avance un petit peu :
    les panels et le datagridview suivent reste à adaper la taille d'une colonne et augmenter le nombre de colonne quand on augmente la taille de la fenêtre...

    pensez-vous que je doive écrire une méthode pour cela ???? mais comment faire pour l'appeler à chaque redimmensionnement avec la souris ??

    winform c'est très beau mais un peu prise de tête quand même....

  10. #10
    Nouveau Candidat au Club
    Femme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 12
    Points : 1
    Points
    1
    Par défaut
    bon c'est ok pour les colonnes : elles suivent
    reste à obtenir le nombre de lignes pour remplir toute la datagridview

  11. #11
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Content de voir que ça avance .
    reste à obtenir le nombre de lignes pour remplir toute la datagridview
    Je ne comprends pas : si le DataGridView occupe tout l'espace vertical voulu et si il contient suffisament de lignes, les lignes affichées devraient remplir tout l'espace.

    Utilises-tu une technique de type Web consistant à charger le DataGridView "page par page" en chargeant un nombre N max de lignes par pages ?
    Si c'est le cas, il vaut mieux changer de principe et tout charger d'un coup : il ya des scrollbars automatiques et ... des filtres et le BindingNavigator.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  12. #12
    Nouveau Candidat au Club
    Femme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 12
    Points : 1
    Points
    1
    Par défaut
    Eh bien la datagridview prend bien tout l'espace de la winform et la largeur des colonnes suit l'agrandissement de la fenêtre avec la souris.

    Au chargement de la page j'ai donné un nombre de ligne rowCount = 10 parce que par défaut je n'ai qu'une seule ligne.
    Ce que je souhaiterai c'est que j'ai x lignes qui remplissent la fenêtre au chargement et n lignes qui se rajoutent quand j'agrandit la fenêtre avec la souris.

    Et pas forcément mettre un nombre de ligne grand et qu'une scrollbar apparaisse dès le début (je trouve pas cela très joli)... mais bon si c'est la seule solution

    Citation Envoyé par Graffito Voir le message
    Si c'est le cas, il vaut mieux changer de principe et tout charger d'un coup : il ya des scrollbars automatiques et ... des filtres et le BindingNavigator.
    ::: là j'avoue être perdue....

  13. #13
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    En application de type Winforms, on peut charger toute la table d'un coup au lieu de charger des "pages" de 10 rows. La seule navigation dans la table se fera avec les scrollbars sans les boutons "page suivante"/"page précédente". Jusqu'à quelques centaines de milliers d'enregistrements, les performances seront bonnes.

    On aura aussi intéret à binder la DataTable source via un BindingSource permettant de faire des tris et des filtres sur les lignes affichées. On peut aussi ajouter un BindingNavigator au dessus de la DataGridview : le BindingNavigator comporte les boutons First, Previous, Next, Last, affiche le nombre de ligne et l'index de la ligne sélectionnée et permet d'aller à une ligne particulière en donnant son index.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  14. #14
    Nouveau Candidat au Club
    Femme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 12
    Points : 1
    Points
    1
    Par défaut
    je vais regardé comment on gère les données avec BindingSource et vous tiens au courant.....
    merci pour tes explications - pas facile quand on est seule , MERCI

  15. #15
    Nouveau Candidat au Club
    Femme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 12
    Points : 1
    Points
    1
    Par défaut
    Je reviens à vous après ce long repas....
    J'ai regardé un peu partout et j'ai vu ça dans la gestion des événements de la datagridview :

    dataBindingComplete : événement déclenché en cas de modifications dans la liste de la source données

    Resterait simplement à écrire une petite procédure qui mettrait à jour les attributs de mes classes.....

    Et une autre qui les afficheraient si je les modifie dans d'autres méthodes ...

    Qu'en pensez-vous ?

    Merci pour vos réponses prochaines ..

  16. #16
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Si on binde le DataGridView à un DatyaTable, le DataGridView "suit" automatiquement (sans gérer d'event particulier) toutes les modifications qui peuvent se produire dans la DataTable (ou autre DataSource).

    En conséquence, il vaudra mieux supprimer le "binding" avant le Fill de la DataTable (ou autre DataSource) et le rétablir ensuite.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  17. #17
    Nouveau Candidat au Club
    Femme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 12
    Points : 1
    Points
    1
    Par défaut
    bon je vais essayer de voir.
    Merci pour la réponse

  18. #18
    Nouveau Candidat au Club
    Femme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 12
    Points : 1
    Points
    1
    Par défaut
    bonjour,
    tu vas vraiment me trouver neuneu mais je ne sais comment faire pour créer une datatable.
    J'ai déjà une classe liveWindowAttributes.h dans laquelle je vais chercher tous les attributs que j'ai besoin d'afficher, de traiter et de mettre à jour.
    Ces attributs viennet de plusieurs classes différentes et je ne vois pas du tout comment créer une datatable (1/ dans visual et 2/ comment lier avec les données déjà existantes).
    Mon boulot c'est de reprendre un code pas très bien écrits, sans commentaires, sans rien - qui affichait les données dans une fenêtre dialog et de transférer les fonctions qu'il faisait dans une winform (nouveau design).
    Si tu veux plus de détails, je peux te MP
    par avance, merci pour ton aide, je suis perdue et c++ managé c'est nouveau pour moi

  19. #19
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Bonjour,

    Des précipitations diluviennenes ayant coupé toutes les routes de l'ile de Madère , je "profite" d'un peu de temps libre pour ces quelques indications.

    Pour définir une DataTable, on crée une instance et on y ajoute des Columns puis on remplit les rows:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    // Here we create a DataTable with four columns.     DataTable table = new DataTable();     table.Columns.Add("Weight", typeof(int));     table.Columns.Add("Name", typeof(string));     table.Columns.Add("Breed", typeof(string));     table.Columns.Add("Date", typeof(DateTime));      // Here we add five DataRows.     table.Rows.Add(57, "Koko", "Shar Pei", DateTime.Now);     table.Rows.Add(130, "Fido", "Bullmastiff", DateTime.Now);     table.Rows.Add(92, "Alex", "Anatolian Shepherd Dog", DateTime.Now);     table.Rows.Add(25, "Charles", "Cavalier King Charles Spaniel", DateTime.Now);     table.Rows.Add(7, "Candy", "Yorkshire Terrier", DateTime.Now);     return table;
    voir:http://www.dotnetperls.com/datarow
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  20. #20
    Nouveau Candidat au Club
    Femme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 12
    Points : 1
    Points
    1
    Par défaut
    merci
    je vais voir

Discussions similaires

  1. Comment ajuster la taille d'une image en background ?
    Par ach152 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 30/10/2008, 00h34
  2. Ajuster la taille d'une zone de dessin
    Par NeMo_O dans le forum GTK+ avec C & C++
    Réponses: 4
    Dernier message: 26/05/2008, 18h29
  3. Ajuster la taille d'une image à la zone image
    Par ecarbill dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 30/08/2006, 19h41
  4. [JTable] ajuster la taille d'une colonne à la taille du texte
    Par GETah dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 24/02/2005, 11h53

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