cs_naylouvar
Messages postés37Date d'inscriptionmardi 14 février 2006StatutMembreDernière intervention 4 mai 2010
-
27 avril 2008 à 20:01
cs_naylouvar
Messages postés37Date d'inscriptionmardi 14 février 2006StatutMembreDernière intervention 4 mai 2010
-
29 avril 2008 à 18:50
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
Liverion
Messages postés296Date d'inscriptionmardi 22 avril 2008StatutMembreDernière intervention18 août 2008 28 avril 2008 à 11:10
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 ^^
cs_naylouvar
Messages postés37Date d'inscriptionmardi 14 février 2006StatutMembreDernière intervention 4 mai 2010 29 avril 2008 à 16:36
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 :-(
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
Liverion
Messages postés296Date d'inscriptionmardi 22 avril 2008StatutMembreDernière intervention18 août 2008 29 avril 2008 à 16:55
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
cs_naylouvar
Messages postés37Date d'inscriptionmardi 14 février 2006StatutMembreDernière intervention 4 mai 2010 29 avril 2008 à 17:02
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.
cs_naylouvar
Messages postés37Date d'inscriptionmardi 14 février 2006StatutMembreDernière intervention 4 mai 2010 29 avril 2008 à 17:22
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