22. juni 2004 - 15:42
Der er
2 kommentarer og 1 løsning
Raise Event
Jeg har en form (frmMain) og en class (clsServer). private void Load() { clsServer srv = new clsServer(); srv.onData = new EventHandler(TestCall); srv.Test(); } private void TestCall(string s) { Console.WriteLine(s); } I class’en clsServer: public ? onData; public test() { Her ville jeg så gerne Raise (invoke eller hvad det hedder) den funktion der er defineret som onData } ___________________________ Men hvordan skal jeg skrive den kode i class'en? Og er koden i form'en korrekt?
Annonceindlæg fra DE-CIX
Edge computing: behandling ved kilden
Edge computing revolutionerer den måde, data behandles på, ved at bringe kapacitet og ydeevne tættere på dér, hvor der er behov for det.
15. april 2025
Det var lidt mere avanceret... men du får da points for dit besvær! -------- private void Form1_Load(object sender, System.EventArgs e) { Tester t = new Tester(); t.onData += new Tester.onDataEventHandler (Testing); t.Test(); } private void Testing(object sender, TestEventArgs e) { Console.WriteLine(e.sSvar); } -------- public class Tester { public delegate void onDataEventHandler(object sender, TestEventArgs e); public event onDataEventHandler onData; public Tester() { } public void Test() { TestEventArgs e = new TestEventArgs("hej"); onData(this, e); } } public class TestEventArgs : EventArgs { public TestEventArgs(string sSvar) { this.sSvar = sSvar; } public string sSvar; }
Hvis du skal have specielle oplysninger med til event modtageren, så er det måden at gøre det på. Hvis det kun er en notification, kan du sagtens bruge System.EventArgs og System.EventHandler.