Laden...

Event wird nicht ausgelöst

Erstellt von haiyyu vor 15 Jahren Letzter Beitrag vor 15 Jahren 3.569 Views
H
haiyyu Themenstarter:in
8 Beiträge seit 2008
vor 15 Jahren
Event wird nicht ausgelöst

Hui,
ich habe eine kleine Frage.
Und zwar habe ich folgenden Code:

        internal System.Net.WebClient dl = new System.Net.WebClient();
        public frm_Main()
        {
            InitializeComponent();
        }

        private void frm_Main_Load(object sender, EventArgs e)
        {
            if (File.Exists("Jet_Podz.zip"))
                File.Delete("Jet_Podz.zip");
            dl.DownloadFileAsync(new Uri("http://gamez64.net/downloads/games/Jet_Podz_Final.zip"), "Jet_Podz.zip");
        }
        private void dl_DownloadProgressChanged(object sender, System.Net.DownloadProgressChangedEventArgs e)
        {
            MessageBox.Show("blah");
        }
        private void dl_DownloadFileCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
        {
            MessageBox.Show("Test");
        }

Es sollte also ständig eine MessageBox angezeigt werden. Dies passiert aber nicht. Wieso?

K
593 Beiträge seit 2007
vor 15 Jahren

Hallo, weil du bei deinem WebClient nicht das Event verknüpfst mit +=.

Gruß Kaji

Gelöschter Account
vor 15 Jahren

weil du dich an keinem event angemeldet hast?

J
3.331 Beiträge seit 2006
vor 15 Jahren

Kaji und Jack haben schon die richtige Antwort gegeben. Ich ergänze: Was hat das Problem mit void zu tun? Jürgen

H
haiyyu Themenstarter:in
8 Beiträge seit 2008
vor 15 Jahren

Aha, danke für den Tipp 😃
Und wie mache ich das?
Edit: joa, ich dachte halt das hängt irgendwie damit zusammen.

J
3.331 Beiträge seit 2006
vor 15 Jahren

Aha, danke für den Tipp 🙂
Und wie mache ich das?

:rtfm: Beispiel zum WebClient.DownloadProgressChanged-Ereignis (und sicher auch noch an anderen Stellen)

Außerdem ist das eine Grundfrage, wie mit Ereignissen umzugehen ist. Das geht also schon sehr in Richtung fehlende Grundlagen. 🛈 📗

Jürgen

H
haiyyu Themenstarter:in
8 Beiträge seit 2008
vor 15 Jahren

Hab jetzt das gefunden: MSDN: Verknüpfen von Ereignissen mit IntelliSense (C#)
Hier mein Code

dl.DownloadFileCompleted += new EventHandler(dl_DownloadFileCompleted);

Jedoch kommt immer eine Fehlermeldung:

Fehler 1 Keine Überladung für "dl_DownloadFileCompleted" stimmt mit dem Delegaten "System.EventHandler" überein. C:\Dokumente und Einstellungen\Benutzer1\Lokale Einstellungen\Anwendungsdaten\Temporary Projects\DManager\Form1.cs 23 41 DManager
Das mit der Tab-Taste funktioniert bei mir nicht.

239 Beiträge seit 2008
vor 15 Jahren

Hallo haiyyu,

deine Methode, die du dem Event zuweist, muss dieselbe Signatur aufweisen, wie sie das Event vorsieht. Da es sich hier um einen AsyncCompletedEventHandler handelt, muss deine Methode folgendermaßen aussehen:

public void CompletedHandler(object sender, AsyncCompletedEventArgs e)

Das sind schon arge Grundlagen. Nur so nebenbei...

Gruß Michbeck1983

Neulich im Computerkurs:
Mein Computer kennt Else nicht! 😁


[URL]XING-Profil[/URL]

49.485 Beiträge seit 2005
vor 15 Jahren