begin process at 2008 07 21 03:38:27
1 213 565 membres
33 nouveaux aujourd'hui
14 167 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Activer le menu approprié [ Windows / Formulaire / Winforms / Controls ] (naylouvar)

Activer le menu approprié le 27/04/2008 20:01:59

naylouvar
Bonjour
J'ai une application MDI faite par C# et que je veux rendre SDI (single document interface) donc la solution c'est de d'esactiver le menu Fichier/Nouveau quand on a un document ouvert.
j'aimerai savoir comment on peut faire ça et aussi comment fait Visual studio (IDE) pour activer selon le format de fichier ouvert les menus corespondant  par exemple le menu du concepteur graphique diffère de celui de l'editeur de code et celui de l' editeur de classe meme les elements de la barre de menu peut changer (ajout/suppression) si c possible aussi de m'aider a fusionner les menus par exemple afficher Fermer sous menu Fichier quant on a une fenetre ouverte j'ai essayer merge mais j'y pas arriver
Si vous aver un exemple ça sera tres helpfull
Merci de votre aide

Re : Activer le menu approprié le 28/04/2008 11:10:25

Liverion
Bonjour,
Pour tous les elements d'interface tu as une propriété Enabled, si tu fais par exemple newToolStripMenuItem.Enable = false; alors l'utilisateur ne pourra plus cliquer sur l'element newToolStripMenuItem.Enable, il sera mis en grisé.
Apres pour gerer selon le type de fichier ouvert tu peux toujours faire une detection sur la fin du nom de ficher
if openFileDialog.Filename.EndsWith(".cs") par exemple ^^

En esperant que cq reponde un peu a ta question

Re : Activer le menu approprié le 29/04/2008 16:36:58

naylouvar
Merci pour ta reponse mais c'est pas le porbleme dans enable mais comment faire pour la reactiver si l'utilisateur à fermer la fenetre child? y a pas d'evenment qui permet de reactiver le menu de la form parent, j'ai essayer avec ce code mais ça ne marche pas :-(

// evenement FormClosed pour la fenetre child

privatevoid Childfrm_FormClosed(object sender, FormClosedEventArgs e)

{

newToolStripMenuItem.Enabled =

true;
newToolStripButton.Enabled =
true;

}
.....

//
.....

Childfrm

childForm = newChildfrm();

//childForm = this.ActiveMdiChild;

childForm.MdiParent = this;

newToolStripMenuItem.Enabled =

false;

newToolStripButton.Enabled =

false;

childForm.Show();
.....



le probleme c'est que la portée de newToolStripMenuItem et limitter dans le fichier MDIparent donc n'est pa reconnu au niveau de childForm meme en changeant sa declaration de private à static public

si vous avez quelque exemples ça sera un big help for me
thanx


Re : Activer le menu approprié le 29/04/2008 16:42:30

Liverion
Le child n'arrive pas a voir ces elements meme quand tu les mets en public ? Tu as essayé en les appelant comme ca :

MdiParent.newToolStripMenuItem.Enabled = true;


Re : Activer le menu approprié le 29/04/2008 16:53:23

naylouvar
meme avec

MdiParent.newToolStripMenuItem.Enabled = truenewToolStripMenuItem n'est pas reconnu meme avec public.
Merci quand meme


Re : Activer le menu approprié le 29/04/2008 16:55:34

Liverion
Sinon tu peux toujours ecrire une fonction publique dans ta fenetre mere qui reactiverait tes menu, fonction aui serait appelée par l'evenement de fermeture de ta fenetre child

Re : Activer le menu approprié le 29/04/2008 17:02:43

naylouvar
Erreur 1 Une référence d'objet est requise pour la propriété, la méthode ou le champ non statique 'BouTiQue.MDIParent1.newToolStripMenuItem' D:\Restor\mes docs\Visual Studio 2008\Mes Projets\BouTiQue\BouTiQue\Articles.cs 20 13 BouTiQue

mais si je met:

static

public System.Windows.Forms.ToolStripMenuItem newToolStripMenuItem;
j'ai comme erreurs de compilation ça :
Erreur 1 Le membre 'BouTiQue.MDIParent1.newToolStripMenuItem' est inaccessible avec une référence d'instance ; qualifiez-le avec un nom de type D:\Restor\mes docs\Visual Studio 2008\Mes Projets\BouTiQue\BouTiQue\MDIParent1.Designer.cs 35 13 BouTiQue
sur toutes les appelles de newToolStripMenuItem.

Re : Activer le menu approprié le 29/04/2008 17:22:23

naylouvar

j'ai créer une fonction public comme tu m'as dis et que j'ai appellé de nouveau depuis la form child (qui ne la reconnait pas)
public

void Nouveau(){

MDIParent1 .newToolStripMenuItem.Enabled = true ;

}
 elle m'a donner comme erreur ça :
Erreur 1 Une référence d'objet est requise pour la propriété, la méthode ou le champ non statique 'BouTiQue.MDIParent1.newToolStripMenuItem' D:\Restor\mes docs\Visual Studio 2008\Mes Projets\BouTiQue\BouTiQue\MDIParent1.cs 15 13 BouTiQue

Si vous preferer que je vous envoie le code entier pas de probleme
Merci infiniment


Re : Activer le menu approprié le 29/04/2008 18:50:56

naylouvar

voilà le code finale enfin :-) cela me permet de  ne pas charger deux fenetre child a la meme fois mais ne désactive pas le menu nouveau

Articles
childForm = new Articles ();

//childForm = this.ActiveMdiChild;

foreach ( Form frm in MdiChildren)

if ( frm is Articles )

{

childForm = (

Articles ) frm;

break ;

}

else

if ( childForm == null )

{

childForm =

new Articles ();

childForm.MdiParent =

this ;

}

childForm.MdiParent =

this ;

childForm.Show();

childForm.Focus();



Classé sous : fichier, menu, exemple, activer, approprié

Participer à cet échange

Pub



Appels d'offres

Dessins techniques
Budget : 60€
Animation Flash - Doma...
Budget : 370€
Application flash medi...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS