begin process at 2012 02 09 12:26:35
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Windows

 > 

Formulaire / Winforms / Controls

 > 

Activer desactiver le menu Fichier nouveau


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Activer desactiver le menu Fichier nouveau

jeudi 1 mai 2008 à 08:12:33 | Activer desactiver le menu Fichier nouveau

naylouvar

Bonjour:
j'ai une application MDI que ça fait 2 semaines que je cherche comment desactiver le sous-menu Nouveau de main menu Fichier sans trouver la bonne solution :-(
j'ai opter cette solution qui ne fais rien si on clique sur le menu nouveausi la fenetre est déjà ouverte

privatevoid ShowNewForm(object sender, EventArgs e)

{

Articles childForm = newArticles();

foreach (Form frm in MdiChildren)

if ( frm isArticles ) {

childForm = (

Articles) frm;

break; }

elseif( childForm == null )
{

childForm =

newArticles();

childForm.MdiParent =

this;
}

childForm.MdiParent =

this;

childForm.Show();

childForm.Focus();

}

La solution sera  ça : si j'arrive à  acceder au  newToolStripMenuItem apartir de la fenetre  Articles qui est la fentetre enfante de MDIParent1

privatevoid Articles_Load(object sender, EventArgs e)

{

newToolStripMenuItem.Enabled =
false; }

si qlqn de vous à une idée je serai tres reconnaissant
merci.
lundi 5 mai 2008 à 09:55:32 | Re : Activer desactiver le menu Fichier nouveau

Liverion

Bon , voila ce que je voulais dire dans ton sujet précédent :

Dans le code de ton MDI Parent tu ecris ces fonctions :

public void enableNewMenu ( )
{
    newToolStripMenuItem.Enable = true;
}

public void disableNewMenu ( )
{
    newToolStripMenuItem.Enable = false;
}



Et dans le code de ta fenetre enfant :

private void Articles_Load(object sender, EventArgs e)
{
    MdiParent.disableNewMenu();

}

private void Articles_Close(object sender, EventArgs e)
{
    MdiParent.enableNewMenu();
}


Normalement ca devrait fonctionner 
lundi 5 mai 2008 à 20:46:28 | Re : Activer desactiver le menu Fichier nouveau

naylouvar

oui normalement ça devarit fonctionner mais si je fais ça ce message d'erreur apparait:

Erreur 1 Une référence d'objet est requise pour la propriété, la méthode ou le champ non statique 'BouTiQue.MDIParent1.desactiver()' 

???
je comprend pas pourquoi cette erreur est générer mais je pense  que j'essaye de modifier un objet private par l'intermedière de desactiver() qui est public void

mardi 6 mai 2008 à 05:11:13 | Re : Activer desactiver le menu Fichier nouveau

naylouvar

bon j'ai trouver une solution qui marche pas tres bien donc j'appelerai pas une solution
c'est de changer la declaration des elements du menu en static private puis en mettant:

MDIParent1
.newToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
au lieu de
 this.newToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();

static
private System.Windows.Forms.ToolStripMenuItem newToolStripMenuItem;
mais le concepeteur graphique m'efface automatiquement tous les éléments du menu qui sont déclarés avec static

je suis un débutant donc si vous avez une idée de koi je parle merci d'avance de votre aide parlant des delegates je comprend pas trop ...

je compte beaucoup sur votre aide

mardi 6 mai 2008 à 09:52:32 | Re : Activer desactiver le menu Fichier nouveau

Liverion

Tu peux mettre le code complet de tes 2 classes s'il te plait ? J'arrive pas a voir où ca peut bloquer avec juste ta fonction
mardi 6 mai 2008 à 23:04:22 | Re : Activer desactiver le menu Fichier nouveau

naylouvar

Merci Liverion pour l'interet que vous avez donner à mon sujet:
voici le lien pour telecharger la solution complete (Format 2008)
la compilation donne l'erreur  suivante:
Erreur 1 Une référence d'objet est requise pour la propriété, la méthode ou le champ non statique 'TestMenu.MDIParent1.newToolStripMenuItem'
le lien est le suivant:

[ Lien ]

Merci une autre fois

mercredi 7 mai 2008 à 09:58:43 | Re : Activer desactiver le menu Fichier nouveau

Liverion

Réponse acceptée !
Bon, j'ai regardé rapidement, je n'ai pas pu tester, travaillant sous Visual Studio 2005.
Mais pour moi , il te manque une variable dans ta classe Form1, qui servirait de réference vers ta fenetre principale :

Dans la Form1 :

public partial class Form1 : Form
{
      
        MDIParent1 MdiParent=null;
      
        public Form1(MDIParent1 appelant)
        {
            InitializeComponent();
            MdiParent = appelant;
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            MdiParent.activer();
        }
}


Et dans la classe MDIParent1 :

 public partial class MDIParent1 : Form
 {
      private int childFormNumber = 0;
 
      public MDIParent1()
      {
            InitializeComponent();
       }
        public void activer()
        {
            newToolStripMenuItem.Enabled = true;
        }

        private void ShowNewForm(object sender, EventArgs e)
        {
            Form1 childForm = new Form1(this);
            childForm.Text = "Fenêtre " + childFormNumber++;
            childForm.Show();
        }
          ...


Le logiciel te demandait que ta fonction activer() soit static car ton appel MDIParent1.activer() est un appel à une methode agissant sur la classe et pas un appel depuis ton instance actuelle de ta classe, il faut que tu fasse tes appels a partir de ton instance : MdiParent.activer()

De plus dans ta fonction activer, pas besoin de mettre MDIParent1.newToolStripMenuItem.Enabled, en effet c'est seulement l'item du menu de ton instance en cours que tu veux desactiver, donc newToolStripMenuItem.Enabled suffit ( ca equivaut implicitement à this.newToolStripMenuItem.Enabled )

Voila voila, si tu peux essayer et me dire si ca fonctionne correctement ( et surtout comme tu le voulais ^^ )

(Sinon je pense pas avoir été très clair sur l'explication du static, donc si quelqu'un voit une meilleure manière de le dire, je suis preneur )
jeudi 8 mai 2008 à 02:12:38 | Re : Activer desactiver le menu Fichier nouveau

naylouvar

oui oui oui ça marche merci Liverion mille merci
jeudi 8 mai 2008 à 02:20:19 | Re : Activer desactiver le menu Fichier nouveau

naylouvar

Bon voilà apres 20jours de recherche sur internet j'ai réussis finalement et c'est grace à toi Liverion :-) bon je vais le mettre sur le site comme code de référence pour tout le monde @+
Merci encore
jeudi 8 mai 2008 à 09:35:35 | Re : Activer desactiver le menu Fichier nouveau

Liverion

De rien, heureux d'avoir pu t'aider ^^






On peut écrire francais sur un clavier allemand , c'est juste plus long !!!


Cette discussion est classée dans : fichier, menu, desactiver, articles, childform


Répondre à ce message

Sujets en rapport avec ce message

Menu en XML...comment faire? [ par sphaxslayer ] Salut tout le monde...J'ai un souci avec un fichier XML...alors je suis sous Visual C# et j'ai un menu composé de 3 boutons, de 3 linklabels et d'un l Menu systeme ? [ par zrelli ] Bonjour, je veux changer le menu contextuelle de windows pour les dossiers qui contienent un fichier ou un dossier bien determiné : par exemple pour ajouter un menu dans l'explorateur [ par warenbe ] bonjour a tousje souhaite rajouter un menu lorsque l'on clique droit sur un fichier dans l'explorateur windows... (à la maniere de winrar par exemple. Menu contextuel de fichier [ par Warny ] Bonjour,Pour la source http://www.csharpfr.com/codes/EXPLORATEUR-FICHIER-CONTROLE_42700.aspx j'ai besoin de charger le menu contextuel windows de mes Activer/Desactiver TRACE par l'intermediaire fichier .config [ par garcimor59 ] Bonjour,Voilà, j'ai réalisé une application Console, avec des #ifdef(TRACE)....Et j'ai lu qu'on pouvait parametre la trace par l'intermediaire d'un fi Activer le menu approprié [ par naylouvar ] BonjourJ'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 Fichi Menu contrextuel pour un listbox [ par Souliabdo ] Bonjour, Est-ce possible de rajouter un menu contextuel pour chaque élément du contrôle list box. En fait j’ai une liste qui contient des non de fic Comment faire un menu => Fichier/Ouvrir avec le selecteur de fichier windows [ par MTKMTKMTK ] Bonjour, Je debute en c# et je suis sous VS 2005. J'aimerai faire un menu en haut avec Ficher / Ouvrir et la une fenetre qui me permet de selection mo Lien menu fichier, edition etc... [ par visioline ] Bonjour tout le monde ! Désolé de déranger avec une question aussi néophyte que moi mais depuis 1 semaine je cherche (p-e mal !) comment lorsque l'on Menu contextuel sur un fichier/répertoire [ par guillaumenegre ] Bonjour,J'aimerais pourvoir lancer une application C# avec un click droit sur un fichier ou un dossier, comme le fait Winzip, ... mais je n'arrive pas


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,607 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales