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 :

[C#] Comment faire un Menu vertical style 'outlook'?


Sujet :

Windows Forms

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 91
    Points : 90
    Points
    90
    Par défaut [C#] Comment faire un Menu vertical style 'outlook'?
    Bonjour,

    J'aimerais savoir comment faire un menu vertical en C# style 'oulook' que l'on peut collapser du genre :


    J'espère pouvoir trouver de l'aide, merci

    Eome
    Grégory Schiro

    Blog PowerShell & MOF
    http://scriptingof.blogspot.com

  2. #2
    Membre chevronné
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Points : 1 904
    Points
    1 904

  3. #3
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Ce lien n'existe plus !

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  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
    Points : 5 195
    Points
    5 195
    Par défaut
    salut

    plutot "simple"

    1 : Un UserControl qui correspondra a ton élément de base (à savoir un en tete et un panel qui contiendra ce que tu voudras y mettre)

    2 : Un UserControl dans lequel tu pourras ajouter des ItemdeBase

    Après, à toi de gérer le Dock automatique vers le haut par exemple

    Et de mettre une méthode pour un objet de base qui aggrandit ou rétrécit l'élément suivant ce que tu voudras faire

    Pour info, le code suivant te servira pour faire en sorte que ton Usercontrol de base puisse accepter de se voir ajouter des éléments dans son panel...

    Ou panel1 est mon panel que j'ai ajouté

    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
    51
    [Designer(typeof(OutlookItemDesigner))]
        public partial class OutlookItem : UserControl
        {
            private int defaultHeight = 0;
            private bool collapsed = false;
     
            public OutlookItem()
            {
                InitializeComponent();            
            }
     
            [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
            public Panel MyChildPanel { get { return panel1; } }
     
            protected override void OnParentChanged(EventArgs e)
            {
                base.OnParentChanged(e);
                defaultHeight = Height;
            }
     
            private void ItemBtn_Click(object sender, EventArgs e)
            {
                collapsed = (collapsed) ? false : true;
                UpdateLook();
            }
     
            private void UpdateLook()
            {
                if (collapsed)
                {
                    Height = ItemBtn.Height;
                }
                else
                {
                    Height = defaultHeight;
                }
            }
        }
     
        public class OutlookItemDesigner : ControlDesigner
        {
     
            public override void Initialize(System.ComponentModel.IComponent component)
            {
     
                base.Initialize(component);
                OutlookItem uc = component as OutlookItem;
                EnableDesignMode(uc.panel1, "MyChildPanel");
                uc.panel1.MouseEnter += new EventHandler(panel1_MouseEnter);
            }
        }

    The Monz, Toulouse
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  5. #5
    Membre extrêmement actif Avatar de fally
    Homme Profil pro
    Développeur .Net / BI
    Inscrit en
    Novembre 2007
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur .Net / BI

    Informations forums :
    Inscription : Novembre 2007
    Messages : 966
    Points : 1 173
    Points
    1 173
    Par défaut
    ou encore Syncfusion
    Je l'ai utilisé et en garde un bon souvenir

  6. #6
    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
    Points : 5 195
    Points
    5 195
    Par défaut
    Juste pour finaliser mes dire

    Faire un tel composant, c'est pas forcément compliqué. Tout dépend de ce que tu veux obtenir comme look et du mode de fonctionnement que tu veux.

    En règle général, je dirais que faire un composant Usercontrol, c'est plutot "simple" en .Net.

    après, on cela se complexifie et prend du temps et donc, potentiellement mieux vaut acheter un composant tout fait, c'est si tu dois gérer plein de mode de fonctionnement, d'affichage, de look, etc...

    Car souvent , les composant que tu peux acheter te proposer moult option de configuration, etc... facilité d'utilisation (genre tu Drag&Drop les controles dans ta barre Outlook plutot que d'ajouter par code par exemple). Ou bien, des bordures de tailles variables, ou bien gestion d'icones, etc..)

    Bref, si ton composant est simple avec peu d'option, je dirais que quelqu'un maitrisant un peu .Net te le fera en 1 journée voir un poil moins (toujours en fonction des options, etc...)


    Si tu veux que je te le fasse... avec un cahier des charges et un peu de sous, ca doit être possible (facture possible bien sur )

    The Monz, Toulouse
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  7. #7
    Membre extrêmement actif Avatar de fally
    Homme Profil pro
    Développeur .Net / BI
    Inscrit en
    Novembre 2007
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur .Net / BI

    Informations forums :
    Inscription : Novembre 2007
    Messages : 966
    Points : 1 173
    Points
    1 173
    Par défaut
    Si tu veux que je te le fasse... avec un cahier des charges et un peu de sous, ca doit être possible (facture possible bien sur )
    On profitepour se faire des sous???
    En fait j'ai juste proposé syncfusion, sinon s'il peut coder celà lui même, il y gagnerait beaucoup et je sais qu'en la matière tu es super doué lol

  8. #8
    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
    Points : 5 195
    Points
    5 195
    Par défaut
    je proposais juste de l'aide, comme ça en passant


    The Monz, Toulouse
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

Discussions similaires

  1. comment faire un menu dynamique
    Par gilardino dans le forum Webdesign & Ergonomie
    Réponses: 3
    Dernier message: 14/08/2007, 14h51
  2. Comment faire une petite fenêtre (style : ctrl+space)
    Par Galip dans le forum C++Builder
    Réponses: 2
    Dernier message: 29/05/2007, 13h53
  3. Comment faire un menu comme celui-ci
    Par marcoO dans le forum Flash
    Réponses: 2
    Dernier message: 31/10/2006, 20h52
  4. comment faire une division vertical ?
    Par mamiberkof dans le forum Général Conception Web
    Réponses: 2
    Dernier message: 06/04/2006, 16h50
  5. Comment créer un menu popup style XP ?
    Par chaours dans le forum Composants VCL
    Réponses: 4
    Dernier message: 29/09/2003, 09h38

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