IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Petit chat, probleme surcharge


Sujet :

Windows Forms

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2011
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 61
    Points : 27
    Points
    27
    Par défaut Petit chat, probleme surcharge
    Bonjour,

    Je voudrai faire un petit chat. Les utilisateurs ecrivent dans un fichier text.
    Il faut que celui ci se charge sur les logiciels lorsqu'il y a un nouveau message. Enfin je sais comment faire tout ca mais voyez plutot :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
        public Form1()
            {
                InitializeComponent();
     
                FileSystemWatcher watcher = new FileSystemWatcher();
                watcher.Path = path + "talkboxtxt";
                watcher.NotifyFilter = NotifyFilters.LastWrite;
                watcher.Changed += new FileSystemEventHandler(OnChanged);
     
            }
     
     
            private void OnChanged(object source, FileSystemEventHandler e)
            {
                StreamReader sr = new StreamReader(path + "talkbox.txt", true);
                String line;
                line = sr.ReadToEnd();
                convers.Text = line;
                sr.Close();
     
     
            }
    J'ai l'erreur suivante :
    Aucune surcharge pour OnChanged ne correspond pas au delegue System.IO.FileSystemEventHandler.
    Pourriez vous m'aider s'il vous plait ?

    Merci d'avance

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Le 2e paramètre de OnChanged doit être de type FileSystemEventArgs, et pas FileSystemEventHandler...
    FileSystemEventHandler est le nom du delegate

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juillet 2011
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 61
    Points : 27
    Points
    27
    Par défaut
    Merci pour ta reponse, ce probleme est resolue.
    Pourtant un autre soucis survient : filesystemwatcher ne fais pas bien son boulot et rien ne se charge lorsque le fichier est modifie.

    Est ce que mon watcher est place au bon endroit ?

    Voici mon code en entier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.IO;
    using System.Security.Permissions;
     
     
    namespace CSM_Talk
    {
        public partial class Form1 : Form
        {
            string path = @"F:\ChatBox\";
     
            public Form1()
            {
                InitializeComponent();
     
                    
            }
     
            private void Form1_Load(object sender, EventArgs e)
            {
                FileSystemWatcher watcher = new FileSystemWatcher();
     
                watcher.Path = path;
                watcher.NotifyFilter = NotifyFilters.LastWrite;
                watcher.Changed += new FileSystemEventHandler(OnChanged);
     
            }
     
            private void OnChanged(object source, FileSystemEventArgs e)
            {
                StreamReader sr = new StreamReader(path + "talkbox.txt", true);
                String line;
                line = sr.ReadToEnd();
                convers.Text = line;
                sr.Close();
     
     
            }
     
            private void send_Click(object sender, EventArgs e)
            {
                string person = name.Text + " says: ";
                String line;
                line = write.Text;
                convers.AppendText(person + line + "\n");
                write.Clear();
     
                StreamWriter sw = new StreamWriter(path + "talkbox.txt", true);
                sw.WriteLine(person + line);
                sw.Close();
     
            }
     
     
        }
    avec convers la richtextbox de la conversation, name le contenue de la textbox pour le pseudo et send le bouton pour envoyer le message.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Non, il est pas au bon endroit. Si tu déclares le FileSystemWatcher en variable locale, il n'y a plus aucune référence dessus quand Form1_Load se termine, donc il peut être ramassé par le garbage collector. Il faut que tu le stockes dans un champ de ta classe. En fait, le plus simple est de faire ça avec le designer... prends le FileSystemWatcher dans la boite à outils, et pose le sur ta Form

    Et il faut mettre EnableRaisingEvents à true pour que les évènements se déclenchent

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juillet 2011
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 61
    Points : 27
    Points
    27
    Par défaut
    You are a genius
    Merci beaucoup, c'est resolu !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [FUN] MsgBox + petit chat = la MiaouBox
    Par fring dans le forum Contribuez
    Réponses: 6
    Dernier message: 18/07/2008, 16h01
  2. [AJAX] Rafraichissement div avec IE
    Par Minority dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 27/09/2007, 23h41
  3. Server de chat probleme
    Par killuaster dans le forum Modules
    Réponses: 1
    Dernier message: 28/10/2006, 00h07
  4. Petit probléme de surcharge d'opérateur .
    Par Clad3 dans le forum C++
    Réponses: 20
    Dernier message: 11/04/2005, 20h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo