11. december 2004 - 22:15Der er
9 kommentarer og 1 løsning
Styring af tekstboks
Hej
Jeg er ret ny i C#.
Jeg en form med et tekstfelt. Tekstfeltet vil jeg gerne bruge til at vise hvad mit program foretager sig(om den er ved at læse filer, skaber forbindelse til internet mm).
Fra formen kaldes metoder i nogle objekter som alle udfører forskellige handlinger, hvordan kan jeg forklare de underliggende objekter(og deres metoder), at de skal skrive deres "status" i tekstfeltet i formen. Skal jeg sende tekstfeltet med som parameter, eller skal man styre det med nogle events?
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
Det er nok lettest at styre det på events! Når f.eks. et af dine objekter har gjort noget, smider det jo en event, derinde kan du så sætte: TextBox1.Text = "Nu har jeg lige gjort ....";
Nej ikke sådan som de ser ud. Det er nogle jeg selv har lavet. Jeg har en klasse "spamfilter" som gør nogle forskellige ting, eks forbinder til server, undersøger mails mm.
Fra formen laver jeg et objekt, af typen spamfilter. Og så er det bare, at jeg gerne vil have status af objektet spamfilter. Tidligere var det en konsol app, så der skrev jeg bare en ny linie for hver ting som skete, men det er ikke så godt længere.
som allerede nævnt, så skal din "spamfilter"-klasse have nogle events, så den kan fortælle omverdenen hvad den er i gang med.
Events er en speciel form for delegates, og er egentlig meget nemme at arbejde med. Lad os starte med at lave et Event af typen System.EventHandler, hvilket repæsenterer et event uden nogle ekstra former for data.
Selve eventen erklæres på denne måde:
public event EventHandler Finished; protected virtual void OnFinished(EventArgs e) { if (Finished != null) { Finished(this, e); } }
i din spamfilter-klasse raiser du dit event når, f.eks. den er færdig, på denne måde:
OnFinished(EventArgs.Empty);
Og i selve formen skal du så have bindet en metode til eventen, det kan se sådan her ud:
Tak for det, jeg ser lige på det når jeg kommer hjem engang i eftermiddag. Kan man også bruge ovenstående hvis spamfilterklassen laver nye objekter, som man også vil have status af. Således at underobjektet en evnet tilbage til spamfilterklassen som så sender det retur til formen?
hvis spamfilter-objectet opretter nye objecter, skal disse også have events som så sendes videre til spamfilter-objectet som igen sender det videre til der hvor spamfilter-objectet nu engang er oprettet.
Når at der bliver oprettet et MailMessage-object i SpamFilter-klassen skal du så sørge for at lave en eventhandler til f.eks. Processed-eventen. Og ja, den eventhandler kan f.eks. holde styr på nogle tællere m.m. og dernæst kalde OnMailProcessed-metoden i SpamFilter-klassen
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.