"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

C#: mehrere Events -> selbe funktion

Master99 26.12.2004 - 18:54 1079 6
Posts

Master99

verträumter realist
Avatar
Registered: Jul 2001
Location: vie/grz
Posts: 12683
Hi Leute!

ich muss bei vielen eingabefelder eine bereichskontrolle durchführen, teilweise würd es sich anbieten die gleiche funktion mit einer übergabe zu verwenden, aber wie kann ich z.b. den control-namen übergeben?

standardmäßig wird ja "object sender" übergeben, aber dadurch erhalt ich irgendwie nur den ctr-typ und nich dessen name (oder bin ich zu blöd dafür?).

falls es wer noch nicht verstanden hat was ich sagen will:

Code:
this.textbox1.Validating += new System.ComponentModel.CancelEventHandler(func);

this.textbox2.Validating += new System.ComponentModel.CancelEventHandler(func);

private void r_conductance_Validating(object sender, System.ComponentModel.CancelEventArgs e)
{
if(sender == textbox1)
 ...

else if(sender == textbox2)
 ...
}
Bearbeitet von Master99 am 27.12.2004, 19:53

Jedi

PROGrAMmER
Avatar
Registered: May 2002
Location: linz
Posts: 1871
hab jetzt zwar schon länger nix mehr mit C# gemacht, sollte aber stimmen. (statt "func" halt den richtigen Namen der Funktion einsetzen; IF noch a bissl ändern; ... ;) )

murcielago

Dr. Doom
Avatar
Registered: Oct 2002
Location: *
Posts: 2689
jo, anders gehts eh ned.

Master99

verträumter realist
Avatar
Registered: Jul 2001
Location: vie/grz
Posts: 12683
des war jetzt nur quasi-code... die ganzen funktionen/ctrls heisse anders, i hab des ganze nur simpel gehalten, damit rauskommt was i eigentlich will.

prinzipiell is ja kein problem, bei mehrere events die gleiche fkt. aufzurufen, es geht mir eigentlich um die übergabe.

bei sender hab ich folgende methoden:

GetHashCode
equals
ToString
GetType

aber irgendwie bei keinem davon kann ich den ctrl-name rausholen. bei ToString gibts bspw.: nur die ausgabe vom ctrl-type und der text der drinnen steht.

murcielago

Dr. Doom
Avatar
Registered: Oct 2002
Location: *
Posts: 2689
na du brauchst ja nur:

TextBox s = (sender as TextBox);
if (s == textbox1) {
//...
}
if (s == textbox2) {
//...
}

Master99

verträumter realist
Avatar
Registered: Jul 2001
Location: vie/grz
Posts: 12683
thx, so funzts!

murcielago

Dr. Doom
Avatar
Registered: Oct 2002
Location: *
Posts: 2689
logo ;-)
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz