Toolstripmenuitem and co

cudenetf Messages postés 448 Date d'inscription mardi 20 septembre 2005 Statut Membre Dernière intervention 26 juillet 2012 - 6 nov. 2006 à 09:17
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 - 7 nov. 2006 à 08:41
bonjour,
je prend des elements d'une table et je voudrais les mettre en toolstripmenuitem dans un menustrip
je parviens a créer les toolstrip menuitem issus de la table
ces toostripmenuitem devrait posseder egalement des items (une sorte d'arbre).
Je voudrais que tous les items que g créé a partir de lta table possede les memes ramifications.
Dois-je les créer a chaque fois?
N'y a t il pas un moyen de "cloner" cette ramification une premiere fois et de la dupliquer?

COmme je sais qu'il y a au moins un element j'ai crée les ramifications en "dur" ds le designer. Maintenant j'aimerais avoir la meme chose "dynamiquement".

merci pour toute aide ou commentaire

4 réponses

Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
6 nov. 2006 à 19:21
Salut, j'ai pas tout compris.. as tu le même problème que j'ai eu ici ( la 2ème question ) :

http://www.csharpfr.com/infomsg_TOOLSTRIPMENUITEM-ENERVE_787174.aspx#8
0
cudenetf Messages postés 448 Date d'inscription mardi 20 septembre 2005 Statut Membre Dernière intervention 26 juillet 2012 2
7 nov. 2006 à 05:31
oui g eu celui la aussi
quand je parle de ramification
c quelque chos edu genre

A_a
    |_b_d_e
    |_c   |_f

avec A mon élément "principal" . j'aurais plusieurs éléments du type de A auquels je veux appliquer les memes "methodes" (a,b,c,d...) en conservant la forme de l'"arbre".
ces methodes seraient les memes avec juste A (ou autre element) en parametre

POur l'instant des que je trouve un element du type de A je recrée tt "l'arbre"  mais cela me semble un peu lourd
Existe - til une autre methode? (quelle est la meilleure)

merci
0
cudenetf Messages postés 448 Date d'inscription mardi 20 septembre 2005 Statut Membre Dernière intervention 26 juillet 2012 2
7 nov. 2006 à 05:32
zut ca a décalé mon bel arbre avec l'image
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
7 nov. 2006 à 08:41
On peut réutiliser le même "arbre" mais on a un peu de mal après a déterminer la branche racine ce qui pose un problème pour passer des paramètres différents aux methodes associées aux éléments du menu.

ToolStripDropDownMenu dropDown = null;


//  menuItem0
//          |_subItem0
//          |        |_subSubItem0
//          |        |_subSubItem1
//          |
//          |_subItem1
//                   |_subSubItem0
//                   |_subSubItem1


private void InitializeForm( )
{
    this.SuspendLayout( );


    ToolStripMenuItem subSubItem0 = new ToolStripMenuItem( );    subSubItem0.Name subSubItem0.Text "subSubItem0";
    subSubItem0.Click += new EventHandler( SubSubItem_Click );
   
    ToolStripMenuItem subSubItem1 = new ToolStripMenuItem( );    subSubItem1.Name subSubItem1.Text "subSubItem1";
    subSubItem1.Click += new EventHandler( SubSubItem_Click );


    // DropDown créé une seule fois et qui contient
    // tout l'arbre des sous-éléments.
    dropDown = new ToolStripDropDownMenu( );
    dropDown.Items.AddRange
    (
        new ToolStripItem[ ]
        {
            subSubItem0,
            subSubItem1
        }
    );


    ToolStripMenuItem subItem0 = new ToolStripMenuItem( );    subItem0.Name subItem0.Text "subItem0";
    subItem0.DropDown = dropDown; // On ajoute le DropDown.


    ToolStripMenuItem subItem1 = new ToolStripMenuItem( );    subItem1.Name subItem1.Text "subItem1";
    subItem1.DropDown = dropDown; // On ajoute le DropDown.


    ToolStripMenuItem menuItem0 = new ToolStripMenuItem( );
    menuItem0.Name = "menuItem0";
    menuItem0.Text = "menuItem0";
    menuItem0.DropDownItems.AddRange
    (
        new ToolStripItem[ ]
        {
            subItem0,
            subItem1
        }
    );
   
    MenuStrip menuStrip = new MenuStrip( );
    menuStrip.Items.Add( menuItem0 );


    this.MainMenuStrip = menuStrip;
    this.Controls.Add( menuStrip );


    this.ResumeLayout( );
}


private void SubSubItem_Click( object sender, EventArgs e )
{
    // Ici on a du mal a déterminer l'arbre racine
    // Le OwnerItem étant null.
    // Faudrait voir avec l'event DropDownOpening.
    MessageBox.Show( ( ( ToolStripMenuItem )sender ).Name );
}

C'est moyen, autant appeler une fonction qui créer un nouvel "arbre" pour chaque éléments, ça prendra peut être plus de place en mémoire mais apparemment les ToolStripMachins ont été pensés comme ça.
0
Rejoignez-nous