Affichage d'un MenuItems

cs_JuS Messages postés 121 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 20 mars 2009 - 4 oct. 2004 à 18:04
cs_JuS Messages postés 121 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 20 mars 2009 - 5 oct. 2004 à 10:07
Je vous expose mon problème.

J'ai une application avec des fenêtres Mdi.
Lors du chargement d'une fenêtre je construis un menu MenuItems qui comporte plusieurs sous menu qui représente un service.

Exemple :
Toto > Titi
> Tutu

Donc on peut voir que le service Toto a deux sous-services Titi et Tutu

A partir d'une autre fenêtre je peux ajouter un nouveau service à Toto, Tata par exemple.

Quand je retourne sur mon autre fenêtre, le menu se reconstruit automatiquement (dans l'évènement Activated).
Je fais donc un monMenu.MenuItems.Clear();
puis pour tous les éléments un monMenu.MenuItems.Add(...);

Le problème est le suivant : mon menu ne s'affiche plus du tout, alors que dans le debbug je vois bien qu'il est plein !!!
Je ne vois plus que
Toto >

C'est tout de même assez génant !

Quelqu'un aurait-il une idée sur la source de mon problème ?
Un problème de refresh ?

Merci d'avance

-=[JuS]=-

Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live

6 réponses

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
4 oct. 2004 à 18:27
montre un peu le code de la methode associée à l'event Activated

Cocoricoooooooo !!!!
0
cs_JuS Messages postés 121 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 20 mars 2009 1
4 oct. 2004 à 18:32
Alors toi t'as peur de rien !!! :o)

Voila juste la partie qui nous intéresse :
this.mciInterServ.MenuItems.Clear();
foreach(Service service in this.dicoService.getDictionnaire())
{
if(service.getIdPere().Equals(""))
{
MenuItem miServ = new MenuItem(service.getNom());
miServ.Click += new System.EventHandler(this.miServ_Click);
this.mciInterServ.MenuItems.Add(miServ);
this.createMenuService(service,1);

if(iCompteur != (Constantes.iESTIM_ENTITE + Constantes.iESTIM_SERVICE) - 1)
{
feuilleAttente.augmenterValueAttente(iCompteur);
iCompteur++;
}
}
}


La méthode "createMenuService" fait exactement la même chose que le code ci-dessus. C'est pour faire des appels récursifs.
En gros je cherche tous mes services de niveau 1 puis pour chaque service de niveau 1 trouvé, je recherche ses services de niveau 2 etc ...

-=[JuS]=-

Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
4 oct. 2004 à 19:40
hum
c'est difficile de se replacer dans le contexte lol
par contre je ne vois pas pourquoi tu te retrouves avec seulement l'item de plus "haut niveau"
tu n'aurais pas un this.mciInterServ.MenuItems.Clear(); qui trainerais dans createMenuService ?

Cocoricoooooooo !!!!
0
cs_JuS Messages postés 121 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 20 mars 2009 1
5 oct. 2004 à 09:45
Non, non ...
La voici la fameuse fonction.

private void createMenuService(Service servicePere,int iNiveau)
{
foreach(Service service in this.dicoService.getDictionnaire())
{
if(service.getIdPere().Equals(servicePere.getId()))
{
string sTabulation = "";

for(int i=0;i<iNiveau;i++)
{
sTabulation += "   ";
}

MenuItem miServ = new MenuItem(sTabulation + service.getNom());
miServ.Click += new System.EventHandler(this.miServ_Click);
this.mciInterServ.MenuItems.Add(miServ);
this.createMenuService(service,iNiveau+1);
}
}
}


J'ai fait un MenuItems.Count est il n'est jamais à 0, même quand ça ne s'affiche pas ...
Je comprends pas pourquoi ce fichu menu veut pas s'afficher ...

-=[JuS]=-

Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
5 oct. 2004 à 10:04
ah je croyais que tu fesais des sous menus moi
enfin ça ne change rien
je ne vois vraiment pas ce qui pourrait clocher :(

Cocoricoooooooo !!!!
0
cs_JuS Messages postés 121 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 20 mars 2009 1
5 oct. 2004 à 10:07
Bon ba merci quand même pour ton aide ...

Si jamais par le plus pur hasard je trouve, je marquerais la réponse.
En attendant le sujet reste ouvert ...

-=[JuS]=-

Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live
0
Rejoignez-nous