FilesystemWatcher [Résolu]

Signaler
Messages postés
120
Date d'inscription
mercredi 14 janvier 2004
Statut
Membre
Dernière intervention
3 mars 2009
-
Messages postés
120
Date d'inscription
mercredi 14 janvier 2004
Statut
Membre
Dernière intervention
3 mars 2009
-
bonjour

j'utilise un FileSystemwatcher dans un objet user Control.

dans la procédure privatestaticvoid OnChanged(object source, FileSystemEventArgs e) , je ne peux acceder au méthodes/propriétés de mon objet userControl
il me les affiche bien (this. ...) mes quand je compile il me  dit : une réference d'objet est requise....
j'ai besoin d'appeler une méthode de mon onjet use control quand je detecte le "rename" d'un fichier ....

help please !!

5 réponses

Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
38
Salut, supprime le mot clé static devant ton évènement OnChanged.
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
54
Salut,
Normalement ça devrait fonctionner.... tu as un morceau de code à nous montrer?

<hr />
-Blog-
Messages postés
120
Date d'inscription
mercredi 14 janvier 2004
Statut
Membre
Dernière intervention
3 mars 2009

dans le load de mon objet user control

// FileSystemWatcher FswSentinelle =

new
FileSystemWatcher();

// chemin a surveillerFswSentinelle.Path = System.Configuration.

ConfigurationSettings.AppSettings[
"CheminAScanner"];

// type de modif a surveillerFswSentinelle.NotifyFilter =

NotifyFilters.LastAccess |
NotifyFilters.LastWrite |
NotifyFilters.FileName;

// fichier a surveiller

FswSentinelle.Filter = System.Configuration.

ConfigurationSettings.AppSettings[
"ExtensionAScanner"];

// evenementsFswSentinelle.Changed +=

new
FileSystemEventHandler(OnChanged);FswSentinelle.Created +=

new
FileSystemEventHandler(OnChanged);FswSentinelle.Deleted +=

new
FileSystemEventHandler(OnChanged);FswSentinelle.Renamed +=

new
RenamedEventHandler(OnChanged);

// on surveilleFswSentinelle.InternalBufferSize = 163840;

FswSentinelle.EnableRaisingEvents =

true;

le code de la procedure Onchanged : refuse la compile sur l'appel a la methode PleinEcran()

// Define the event handlers.

private
static
void OnChanged(
object source,
FileSystemEventArgs e){

         string NomDuFichier =
"";

         switch (e.ChangeType.ToString())         {

            // un fichier nouveau est arrivé

         case
"Created":

                  break;

         case
"Deleted":

                  break;

        case
"Renamed":

                  try               {

                     this.PleinEcran();               }

               catch (
Exception ee)               {

                  MessageBox.Show(
"Cs_Sentinnelle erreur 2 : " + ee.Message.ToString());               }

               break;

         default:

               break;   }

}

public
void PleinEcran(){

   if (
this.ParentForm.Name !=
"foPleinEcran")   {

      this.frmPleinEcran.BringToFront();
   }
}
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
54
Oui, dans une méthode static on ne peut pas accéder au membre d'instance.... logique

<hr />
-Blog-
Messages postés
120
Date d'inscription
mercredi 14 janvier 2004
Statut
Membre
Dernière intervention
3 mars 2009

merci !!!!