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 :

TabControl sans Tab


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 104
    Par défaut TabControl sans Tab
    Bonjour à tous,

    je souhaiterais créer une fenetre dans le même style que Outlook 2003, donc avec un menu à gauche sous forme de treeView par exemple. Lors d'une sélection dans ce tree view, le contenu du panneau principal s'adapterait à la sélection. D'apres vous, quel composant serait le plus adéquat ? je pensais à un tabControl, mais le probleme c'est que je n'ai pas envie de voir apparaitre les différents TabPages. Alors quoi d'autre ? des panels pour chaque choix de menu et jouer avec les proriétés visible ? difficile pour le design...

    j'attends vos avis sur la question...
    mercimerci !

  2. #2
    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

    beh, le TabPanel sans l'affichage des onglets.. ya pas

    donc, à moins de te faire ton propre TabOnglet, ou d'en trouver un déja fait
    sur le net, tu peux oublier

    Je pense que dans outlook 2003, c'est soit ce que MS a fait, soit ils font un switch entre différents panels

    Je crois cela dit, que la question a déja été posé ici


    The Monz, Toulouse

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 104
    Par défaut
    ou alors je pensais à une autre solution, c'est de créer des fenetres sans bords (propriété FormBorderStyle à "none") et de venir les placer à l'ouverture à l'endroit prévu à cet effet dans la Form principale... Mais alors bonjour le repositionnement en cas de déplacement de la fenetre principale... cette solution ne fait quand-même pas hyper pro

    enfin bon, je vais toujours attendre de voir si qqun n'a pas une solution miracle

    Merci d'avance !

  4. #4
    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
    beh, tu peux placer dans un panel en mode Dock.Fill les différents user Control qui correspondraient à tes différentes pages...

    Comme ca, pour les pb de resize, tu les zappes illico

    The Monz, Toulouse

  5. #5
    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
    tiens une astuce que j'ai trouvé

    Tu fais cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    namespace TabLessApp
    {
        public partial class MyTab : TabControl
        {
            private bool userModeShow = false;
     
            public bool UserModeShow
            {
                get { return userModeShow = false; }
                set
                {
                    userModeShow = value;
                    UpdateUserMode();
                }
            }
     
            private void UpdateUserMode()
            {
                if (userModeShow)
                {
                    SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.SupportsTransparentBackColor, true);
                    SetStyle(ControlStyles.UserPaint, true);
                    ItemSize = new Size(1, 1);
                }
            }
     
            public MyTab()
            {
                InitializeComponent();
            }
     
            protected override void OnDrawItem(DrawItemEventArgs e)
            {
                base.OnDrawItem(e);
                Trace.WriteLine("Draw Item");
            }
     
            protected override void OnPaint(PaintEventArgs e)
            {
                base.OnPaint(e);
     
                Trace.WriteLine("Paint Pane");
                Graphics g = e.Graphics;
                if (userModeShow)
                {
                    g.FillRectangle(new SolidBrush(SystemColors.Control), ClientRectangle);
                }
            }
        }
    }
    en faisant ItemSize = (1,1) tu réduis la partie de l'onglet
    et avec la surcharge du draw, tu peux ainsi faire ta bordure comme tu l'entends

    Bon, c'est un peu bidouillesque, mais je trouve que ca le fait bien
    (à condition de mettre UsershowMode à True quelque part)

    Comme cela, le control à le look habituel en design et en dehors, dès que tu l'utilises (ou que tu passes UserModeShow à true, bingo, t'as ce que tu veux)

    Ca correspond à ton besoin ?

    The Monz, Toulouse

  6. #6
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par nico_4802 Voir le message
    ou alors je pensais à une autre solution, c'est de créer des fenetres sans bords (propriété FormBorderStyle à "none") et de venir les placer à l'ouverture à l'endroit prévu à cet effet dans la Form principale... Mais alors bonjour le repositionnement en cas de déplacement de la fenetre principale... cette solution ne fait quand-même pas hyper pro
    Elle n'a surtout aucun intérêt.
    Pourquoi utiliser des fenêtres, alors qu'il suffit de définir un container avec un panel que l'on affiche et que l'on cache.
    Sur ce genre d'affichage, le plus simple est d'utiliser un splitter avec le contrôle de menu dans le panel de gauche et les contrôles que l'on charge dans le panel de droite.

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 700
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    Elle n'a surtout aucun intérêt.
    Pourquoi utiliser des fenêtres, alors qu'il suffit de définir un container avec un panel que l'on affiche et que l'on cache.
    Sur ce genre d'affichage, le plus simple est d'utiliser un splitter avec le contrôle de menu dans le panel de gauche et les contrôles que l'on charge dans le panel de droite.
    Un autre Splitter à droite pour l'affichage rapide en dessous

  8. #8
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par Chubyone Voir le message
    Un autre Splitter à droite pour l'affichage rapide en dessous
    Par exemple, oui. Je trouve ce contrôel splitter tout à fait intéressant : il permet d'économiser beaucoup de temps sur les développement d'IHM (qui, il faut le dire, ne présentent pas beaucoup d'interêt).

Discussions similaires

  1. Report xls sans tab
    Par yaya0057 dans le forum Jasper
    Réponses: 1
    Dernier message: 07/11/2008, 08h59
  2. TabControl sans onglet
    Par M_Makia dans le forum C#
    Réponses: 1
    Dernier message: 29/04/2008, 13h30
  3. [VB.NET] Touche Tab et tabcontrol
    Par olbi dans le forum Windows Forms
    Réponses: 2
    Dernier message: 13/09/2006, 11h37
  4. Retrouver une tab sans un SSTAB et l'afficher
    Par mister3957 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 20/03/2006, 15h29

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