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#] MenuItem dynamique


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2003
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 100
    Par défaut [C#] MenuItem dynamique
    bjr,

    J'ai dans mon MainMenu un menu qui s'appelle "MenuItem3" et dans ce menu j'ai : "Ajouter","Supprimer" et 1 Barre de Séparation. que l'on peut representer comme suit :

    MenuItem3 (Modules)
    -> Ajouter
    -> Supprimer
    -----------------

    J'insère dans ce menu un menu "Ventes" avec la méthode suivante :
    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
     
    private void AddToMainMenus(MenuItem parentNode, MenuItem[] itemsMenus)
    {
       // MenuModule = Get() de MenuItem3
       int _idx = MainForm.MenuModule.MenuItems.Count;
       int _idx2 = parentNode.MenuItems.Count;
     
       foreach(MenuItem mi in itemsMenus)
       {
             MainForm.MenuModule.MenuItems[parentNode.Index].MenuItems.Add(_idx2,mi);
             MainForm.MenuModule.MenuItems.Add(_idx,mi);
             _idx++;
             _idx2++;
       }
    }
    Seulement en testant cette fonction le sous-menu "Ventes" ne se met pas dans les 2 sous-menus comme suit :

    MenuItem3 (Modules)
    -> Ajouter
    -> Supprimer -> Ventes
    -----------------
    -> Ventes

    il ne s'affiche que dans le "menu principale"

    MenuItem3 (Modules)
    -> Ajouter
    -> Supprimer
    -----------------
    -> Ventes

    et si je commente une des 2 ligne :
    MainForm.MenuModule.MenuItems.Add(_idx,mi);

    il s'affiche bien dans la bonne colonne.

  2. #2
    Membre confirmé
    Inscrit en
    Avril 2003
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 100
    Par défaut
    Résolu en faisant un Merge comme suit :

    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
     
    private void AddToMainMenus(MenuItem parentNode, MenuItem[] itemsMenus)
    {
        int _idx = MainForm.MenuModule.MenuItems.Count;
        int _idx2 = parentNode.MenuItems.Count;
     
        MenuItem _suppMenuItem = new MenuItem("Supprimer");
        _suppMenuItem.MenuItems.AddRange(itemsMenus);
        parentNode.MergeMenu(_suppMenuItem);
     
        foreach(MenuItem mi in itemsMenus)
        {
    //MainForm.MenuModule.MenuItems[parentNode.Index].MenuItems.Add(_idx2,mi);
            MainForm.MenuModule.MenuItems.Add(_idx,mi);
        _idx++;
     
    // _idx2++;
        }
    }
    J'obtiens ce que je voulais :
    MenuItem3 (Modules)
    -> Ajouter
    -> Supprimer -> Ventes
    -----------------
    -> Ventes

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

Discussions similaires

  1. [MVVM] MenuItem statique + dynamique
    Par sfxzeus dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 19/12/2012, 18h34
  2. Réponses: 9
    Dernier message: 19/11/2009, 17h35
  3. Réponses: 13
    Dernier message: 15/03/2007, 16h46
  4. [VB.NET] Ajout de menuitem dynamique
    Par SergeF dans le forum Windows Forms
    Réponses: 2
    Dernier message: 13/12/2006, 14h42
  5. [c#] inclure des menuitem dynamiques
    Par Abydos Business Group dans le forum Windows Forms
    Réponses: 1
    Dernier message: 17/05/2006, 14h29

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