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

C# Discussion :

ToolStrip + DataGrid : un bout de DataGrid est caché sous le TooStrip


Sujet :

C#

  1. #1
    Membre Expert Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Par défaut ToolStrip + DataGrid : un bout de DataGrid est caché sous le TooStrip
    salut les gars,

    je crée par programmation un formulaire contenant :
    -ToolStrip (barre d'outils)
    -DataGrid

    mon probleme : la DataGrid passe sous le ToolStrip ce qui me cache le titre des colonnes (voir photo).


    voici le code pour le formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    this._form = new Form();
    this._form.BackColor = Color.Black;
    this._form.Text = "Panneau Debug";
    this._form.StartPosition = FormStartPosition.Manual;
    this._form.Width = Screen.AllScreens[(Screen.AllScreens.Count() - 1)].Bounds.Width;
    this._form.Height = Screen.AllScreens[(Screen.AllScreens.Count() - 1)].Bounds.Height - 25;
    this._form.Left = Screen.PrimaryScreen.Bounds.Width + ((Screen.AllScreens[(Screen.AllScreens.Count() - 1)].Bounds.Width / 2) - (this._form.Width / 2));
    this._form.Top = (Screen.AllScreens[(Screen.AllScreens.Count() - 1)].Bounds.Height / 2) - (this._form.Height / 2);
    this._form.FormClosing += new FormClosingEventHandler(this.form_Closing);
    this._form.TopMost = true;
    le ToolStrip :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ToolStrip barreOutils = new ToolStrip();
    barreOutils.Items.AddRange(new ToolStripItem[] {btBoEffacer, btBoDefiler});
    barreOutils.Name = "barreOutils";
    barreOutils.TabIndex = 1;
    barreOutils.Dock = DockStyle.Top;
     
    this._form.Controls.Add(barreOutils);
    la DataGrig :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    this._dtGrid = new DataGridView();
    this._dtGrid.Columns.AddRange(new DataGridViewColumn[] { col1, col2, col3 });
    this._dtGrid.Dock = DockStyle.Fill;
    //this._dtGrid.Anchor = AnchorStyles.Top;
    //this._dtGrid.Top = barreOutils.Height;
    this._dtGrid.Name = "dataGridView1";
    //this._dtGrid.Size = new Size(this._form.Width, this._form.Height);
    this._dtGrid.TabIndex = 2;
    this._dtGrid.ColumnHeadersHeight += 10;
    this._dtGrid.RowHeaderMouseDoubleClick += new DataGridViewCellMouseEventHandler(this.dtGrid_RowHeaderMouseDoubleClick);
     
    this._form.Controls.Add(this._dtGrid);
    this._form.Show();
    j'ai essayé plein de solution avec différentes valeurs/combinaisons de DockStyle et AnchorStyles mais rien de concluant.
    donc pour l'instant j'ai du rajouter un evenement qui redimensionne la DataGrid



    il doit exister une propriété (ou autre) pour empêcher la DataGrid de passer sous le ToolStrip ?
    merci
    Images attachées Images attachées  

  2. #2
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    il doit exister une propriété (ou autre) pour empêcher la DataGrid de passer sous le ToolStrip ?
    Pas que je sache malheureusement.

    Tu peux toujours placer ton DataGridView dans ta fenêtre puis l'ancrer à gauche, droite et bas, afin qu'il s'adapte à la dimension de la fenêtre. Ou bien placer un container en Fill sur ta Form (un TableLayoutPanel avec 2 lignes par exemple, la première étant configurée en redimensionnement automatique) et après tu place ton menu dans la ligne du haut et ton DataGridView en Fill dans la ligne du bas.

  3. #3
    Membre Expert Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Par défaut
    ah ....
    pourtant quand je crée le même formulaire en utilisant le concepteur visuel de VS2008, ce problème n'apparait pas.

  4. #4
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Citation Envoyé par Lorenzo77 Voir le message
    pourtant quand je crée le même formulaire en utilisant le concepteur visuel de VS2008, ce problème n'apparait pas.
    Vraiment ? Car j'ai le phénomène de mon côté.

    Car j'ai le phénomène de mon côté, ce qui est normal. Un dock de type Fill fait que le contrôle prend toute la place disponible dans le container associé, qu'il y ai d'autres contrôles ou non.

    De plus, si on sélectionne le DataGridView on constate que sa position est (0;0) ou encore que le petit menu en design (celui accessible par la flèche tout en haut à droite du contrôle) est situé au niveau du MenuStrip, montrant bien que le DataGridView passe dessous.
    Images attachées Images attachées  

  5. #5
    Membre Expert Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Par défaut
    voici mon exemple, celui fait avec le concepteur visuel de VS2008, j'ai meme rajouté une barre de statut en plus de la barre de menu pour verifier et le DataGrid ne passe pas en dessous ...

    ------

    tu utilises VS 2005 ?
    Images attachées Images attachées  

  6. #6
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Je dois avouer que je sèche à ce moment

  7. #7
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    salut

    cela vient de l'ordre dans lequel les composants sont "ordonnés" dans le control de la forme.

    Tu as une fenetre qui permet de faire cela (mais aussi une propriété de chaque controle)

    En changeant cela, tu n'auras plus ton problème... C'est quasi sur !


    The Monz, Toulouse

  8. #8
    Membre Expert Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Par défaut
    salut,

    ordonnés = ordre de prise en compte dans le formulaire ?

    car pour l'instant la seule propriété que j'indique c'est le TabIndex ... qu'elle est le nom de la propriété qu'il faut indiquer ?

    merci

  9. #9
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    j'sais pas

    j'dirais que c'est l'ordre dans lequel l'objet sera ajouté au controls

    sinon, Document Outline en mode designer (Ctrl + W, U )

    The Monz, Toulouse

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 125
    Par défaut
    Salut,

    je confirme: j'avais eu le même problème, mais en ajoutant mes composants dans un ordre différent, c'était bon.
    J'ai pas de VS sous la main, mais ça vaut le coup de tenter, peut-être même en se contentant d'inverser les lignes dans le fichier designer, juste pour vérifier !

  11. #11
    Expert confirmé 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
    Par défaut
    j'ai essayé plein de solution avec différentes valeurs/combinaisons de DockStyle et AnchorStyles mais rien de concluant.
    Pour résoudre ce problème au design, je fais un click droit sur l'un des 2 composants qui se recouvrent, pour exécuter un BringToFront ou un SendToBack !!!

  12. #12
    Membre Expert Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Par défaut
    theMonz31 et ElTchoupi : bien vu, il a suffit que je passe le
    this._form.Controls.Add(barreOutils);
    derriere
    this._form.Controls.Add(this._dtGrid);

    et ca fonctionne

    merci les gars

    Graffito : BringToFront / SendToBack sont pour la gestion du z-index, pas utile dans mon cas.


    ----
    bordel, quand même 1 semaine sur ce problème mineur a fouiller toutes les propriétés et a tester des 100aines de possibilités
    ----

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 17/06/2008, 15h43
  2. [C#][DataGrid] Comment savoir s'il est vide ?
    Par pepin21 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 21/04/2006, 09h38
  3. Datagrid Vertical en VB6 ? C'est possible ?
    Par thefutureisnow dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 06/01/2006, 16h35
  4. [NT-VDD] Où est caché VdmUnmapFlat ?
    Par Eric Sigoillot dans le forum Windows
    Réponses: 11
    Dernier message: 19/08/2004, 12h24
  5. Réponses: 4
    Dernier message: 15/12/2003, 17h46

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