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 :

Probleme interface form designer multi panel et/ou groupbox superposition


Sujet :

Windows Forms

  1. #1
    Candidat au Club
    Inscrit en
    Février 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Probleme interface form designer multi panel et/ou groupbox superposition
    Bonjour,

    Voila, j'ai un probleme qui m'agace grandement avec Visual Studio 2005 que je n'avais pas avant avec la version precedente que j'utilisais (2002 je crois).

    Dans le form designer, j'aimerais avoir plusieurs panels (ou groupbox, peu importe) de la meme taille et superposes (places exactement au meme endroit) afin de pouvoir facilement mettre d'autres composants dedans et ensuite dans le code je peux indiquer quel panel ou groupbox serait visible en fonction de tel ou tel evenement.

    En clair, cela evite de passer par differentes forms, tt se passe sur la meme et moi j'aime bien comme ca. Je l'ai fait avant et bon, meme si ce n'etait pas tres pratique pr passer de l'un a l'autre dans le designer (je faisais clic droit > send to back) ca marchait tres bien au final.

    Sauf que la, je viens d'essayer la meme chose, mais qd je fais clic droit send to back il merdouille a moitie, alors bon je me dis au pire, je les decale tous (jai besoin de 4 panels differents) le temps de mettre les composants et ensuite je les resuperpose mais j'ai teste et le code ne marche pas bien, enfin, pas pr ts les panels et je crois bien que la raison pr laquelle ca ne marche pas est que cet abruti de designer, des fois il croit que mon panel que jai superpose pile poil au dessus d'un autre panel est en fait a l'interieur de ce panel et non pas a l'interieur de la form, du coup, evidemment, quand je cache le panel qui contient un autre panel (alors que ce n'est pas ce que je voulais hein) ben jai beau vouloir mettre l'autre visible, si il croit que celui que je veux montrer est a l'interieur de celui que je veux cacher, forcement, au final il ne m'affiche plus rien.
    Bref je suis enervee lol
    Alors oui d'un cote c'est pratique que le designer comprenne tout de suite qd tu mets des composants a l'interieur d'un panel qu'il faut qu'ils soient a l'interieur du panel et non pas de la form, oui c'est bien; mais qd on veut pas ca, eh bien zut c'est franchement embetant! (pr ne pas dire de mots vulgaires )

    Bon sinon je pensais qu'il faudrait que je declare tt ca ds le code, m'enfin franchement, VB est sense etre plus facile a utiliser et surtt ns faciliter la tache pr l'interface alors sachant que tt devrait pvr etre fait sans probleme ds le form designer je trouve ca vraiment stupide d'avoir a le faire ds le code juste pr ca...

    Ou sinon je pensais au tabcontrol mais je ne veux pas de tab. A moins qu'il y ait un moyen de cacher les tab, du coup ce serait plus pratique!

    En ASP.NET, c'etait bien plus simple, on peut facilement utiliser un multi view ou multipage, alors pourquoi ne pas avoir aussi cree un controle comme ca pr les applications windows?!

    Faut-il que je fasse mon propre user control? Est ce que ca ne ferait pas le meme probleme de tte facon?

    Bon sur ce, dsl pr ce petit coup de gueule, mais ca m'embete vraiment de perdre du temps pour ca...

    Je vous remercie d'avance si vs avez des idees ou suggestions a me proposer.

  2. #2
    Membre régulier Avatar de netomin
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 81
    Points : 102
    Points
    102
    Par défaut
    Je vois que ça t'a enervé mais c'est surement un problème de comment tu les à positionné tes Panels, j'ai dejà fais cela plusieurs fois sous .Net2005 et pas de problème.
    Tu dois juste faire attention au moment de les placer avec la sourir de ne pas te tromper et mettre un de tes panels a l'interieur d'un autre. C'est pour cela que a la place de le faire à la main il vaut mieux definir leur emplacement avec le menu de propietés à droite et indiquer la meme "Location" (0;0) par exemple et la meme taille.

    pour voir si tes panels sont bien tous dans ta fenetre tu dois regarder dans le code du designer "Form1.designer.vb" par exemple et voir dans la liste de controls ajoutés à ta form si tous s'y trouvent.

    Par exemple, si tu as 3 panels:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
            '
            'Form1
            '
            Me.Controls.Add(Me.Panel1)
            Me.Controls.Add(Me.Panel2)
            Me.Controls.Add(Me.Panel3)
    Pareil si un de test panels se glissé à l'interieur d'un autre panel tu devrais pouvoir le voir dans la liste de ses propres controls et à ce moment là tu devra le rectifier.
    Il y a toujours une réponse, il suffit de la trouver.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 110
    Points : 140
    Points
    140
    Par défaut
    Moi pour eviter ce genre de souci et surtout pour que ca soit beaucoup plus propre, lisible et facile à utiliser je créerais autant de class derivés de "system.windows.forms.usercontrol" que de panel que tu veux utiliser un peu dans ce style là
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Public Class monUserControl
        Inherits System.Windows.Forms.UserControl
     
        Public Sub New()
            Call InitializeComponent()
        End Sub
    End Class
    Ensuite dans VS2005 tu passe en mode design sur ta classe et fait en ce que tu souhaite.

    Il ne te reste plus que sur ton form principal à faire un (pour chacunes de tes classes)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim oMonUserControl as monUserControl
     
    oMonUserControl = new monUserControl()
    oMonPanel.controls.add(oMonUserControl)
    Et hop le tour est joué, comme ca tu peux designer les choses proprement sans te faire chier avec les superpositions dans chacune de tes classes.

    Evidemment tu accèdes au composent de chacune de tes classe par leurs proprietés.
    A toi de gerer comme avant laquelle est visible en fonction de ton programme.

  4. #4
    Candidat au Club
    Inscrit en
    Février 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Ok, merci bcp pr vos reponses.

    Bon ca va mieux en fait, je ne suis plus trop fachee contre VS 2005

    J'etais pas de bon poil aussi parce que je me suis fait chiee a creer des classes pr chaque entite de ma base de donnees SQL (keske c long, et keske c chiant!) dont je vais avoir besoin, ainsi que des classes qui gerent tt ce qui est acces aux donnees; je me suis dit, allez, on va faire les choses bien et on va creer un librairie de classes pr tt ce qui concerne la data access layer, ca sera mieux pr le reusability etc, et hop, apres avoir passe des heures et des heures a faire cette tache abominable et repetitive (bon, j'exagere, ce n'est pas si terrible mais bon ce n'est qd meme pas le + interessant) un mec me dit qu'il existe une librairie s'appelant NHibernate qui peut generer ca automatiquement!
    Bref, apparemment ce n'est pas evident a configurer par contre, donc jai continue a faire mes classes car ca me faisait trop mal au coeur de tte facon de tt supprimer, mais bon, si ca strouve j'aurai pu gagner bcp de tps avec ca. Alors en + mes panels ki ne marchaient pas, + la fatigue, j'etais a bout lol !

    J'ai reteste en indiquant bien la meme location dans la propriete des groupbox que je superpose et c'est bon, ca marche correctement donc ouf, un (petit) souci de moins...
    J'aurai du essayer ca avant de "paniquer" mais bon hein, je suis un peu impatiente parfois
    Bon c'est vrai que ce n'est pas hyper pratique comme solution m'enfin comme j'ai pas mal de textbox, buttons etc a l'interieur de chaque ca m'embetait un peu d'avoir a tt declarer direct ds le code.

    Oui, j'aurai bien aime verifier le code du designer mais je ne le trouvais pas, je pensais qu'il etait completement cache du coup ds VS 2005 et ca, ca menervait encore + lol
    D'ailleurs j'etais sur le point de vous demander mais je viens tt juste de trouver phew, il fallait cliquer sur "show all files" dans l'explorer... Ca pourrait etre montre automatiquement qd meme! (il faut bien que je trouve qqchose a redire)

    Bref sinon quant aux usercontrol, ouais, c'est une bonne idee, j'essaierai

    Voila voila, dsl pr ce post pas super interessant, et merci encore
    ++

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

Discussions similaires

  1. Création interface multi-panel
    Par miniil dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 24/02/2009, 07h53
  2. [C#] Comment ouvrir une form dans un panel
    Par Le Basque dans le forum Windows Forms
    Réponses: 7
    Dernier message: 28/02/2007, 12h31
  3. Probleme de rafraichissement d'un panel de plusieurs compo.
    Par lilou77 dans le forum Interfaces Graphiques en Java
    Réponses: 5
    Dernier message: 08/12/2005, 13h51
  4. Message d'erreur de form designer d'oracle 9i DS(FRM-10142)
    Par benjamin50 dans le forum Designer
    Réponses: 12
    Dernier message: 15/01/2005, 17h01

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