object sender....

d-Stench

Erfahrenes Mitglied
Hallo Leute!

mal eine Frage:

Code:
private void linkLabel1_LinkClicked(object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e)
{
this.label2.Text=sender.ToString();
.
.
.
.
}

ich will eigendlich nur den Namen, des gedrückten LinkLabels Den bekomm ich auch, doch mit sehr viel mehr Text als erwartet:

System.Windows.Forms.Button Text: button1

wie filtere ich "button1" aus diesem String herraus?

Danke

PS: bin ein Anfänger :(
 

Nico Graichen

Erfahrenes Mitglied
Hi,

Mach doch einen Substring von der letzten Position eines Leerzeichens bis zum Ende.

Mir stellt sich nur eine Frage:
Wenn du diese Zuweisung sowieso immer im OnClick-Event eines Controls machst, warum schreibst du nicht direkt den Namen in den Quelltext.
Ich verstehe nicht ganz, was der Sinn sein soll.
 

d-Stench

Erfahrenes Mitglied
der Sinn ist der!

die Button-Namen entsprechen den Tabellennamen in der DB! um das Dynamisch zu machen, mach ich folgendes:

Code:
OleDbCommand aCommand = new OleDbCommand("select url from tabelle1 where link like '" + sender.ToString() + "'", aConnection);

Kannst bitte nochmal näher erklären was du gemeint hast?

Bitte!
 

Nico Graichen

Erfahrenes Mitglied
Code:
string ctrlFullName = sender.ToString();
string ctrlName = ctrlFullName.SubString(ctrlFullName.LastIndexOf(" "));
MessageBox.Show(ctrlName);

Das meine ich ;)
 

broetchen

Erfahrenes Mitglied
moin

Wird der Handler nur von Buttons aufgerufen, kannst du sender auf Button casten und dann einfach die Name-Eigenschaft auslesen.
Code:
private void linkLabel1_LinkClicked(object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e)
{
   Button btn = (Button) sender;
   ...
   OleDbCommand aCommand = new OleDbCommand("select url from tabelle1 where link like '" + btn.Name + "'", aConnection);
   ...
}

Ist ein bisschen eleganter ;-)