Laden...

Textboxen...

Letzter Beitrag vor 18 Jahren 9 Posts 3.495 Views
Textboxen...

Hallo,

ich erstelle dynamisch zur Laufzeit z.B. 200 Textboxen und füge diese einem Panel zu. Gibt es die Möglichkeit zu erkennen, in welche Textbox später doppelt geklickt wird. Ich kann ja nicht (und möchte auch nicht) für jede Textbox einen Ereignisbehandler schreiben... ich weiß ja auch vorher nicht unbedingt, wieviele Boxen es gibt....

Geht das irgendwie oder muss ich mir die XY Pos der Maus ermitteln, denn dann kann ich errechnen, in welche Box ich geklickt habe...

was würdet ihr empfehlen???

Hallo,

auf irgendeine Weise wirst Du Deine Textboxen doch eindeutig erkennbar machen, z.B. durch fortlaufende Nummerierung der Namen: Textbox17, Textbox18 usw. Dann kannst Du diesen Namen abfragen:

private void Textboxen_DoubleClick(object sender, System.EventArgs e)
{
    // Get the name of the actual textbox
    if (sender is TextBox) {
        string TextBoxName = (sender as TextBox).Name;
    //  usw.

Ich hoffe, das entspricht Deinen Intentionen. Gruß Jürgen

hallo...

also die textboxen sind per array erzeugt worden und haben folgenden aufbau:

Textbox_Tool[zaehler] ....

muss ich nicht bei den eventmethoden den kompletten namen angeben..

also


private void Textbox_Tool[1]_DoubleClick(object sender, System.EventArgs e)..

private void Textbox_Tool[2]_DoubleClick(object sender, System.EventArgs e)..

private void Textbox_Tool[3]_DoubleClick(object sender, System.EventArgs e)..

..usw???

du kannst ja ein event für die erste textbox schreiben und es den anderen textboxen zuweisen.

also in etwa so:


textBox5.Click += new EventHandler(textBox1_Click);

_Original von XXL_muss ich nicht bei den eventmethoden den kompletten namen angeben.. Nein! Ändere für diese Situation das übliche Vorgehen:1.Schreibe manuell die gewünschte allgemeine Ereignismethode (mit beliebigem Namen, z.B. auch AbrakadabraUmschalten() - nur die Parameter-Typen object + EventArgs müssen stimmen). Ich habe in meinem Vorschlag Textboxen_DoubleClick() geschrieben als Name dafür, dass dies für DoubleClick bei allen Textboxen gelten soll. 1.Gehe in den Designer zu einer Muster-Textbox und dann in das PropertyGrid. 1.Drücke beim Ereignis DoubleClick die Tastenkombination Alt-Down. 1.Wähle Deine Standardmethode aus der Liste der vorgeschlagenen Methoden aus. 1.Beim Erzeugen jeder neuen Textbox fügst Du (entsprechend dem Muster in der Designer.cs) diesen EventHandler zu:

Textbox23.DoubleClick += new System.EventHandler(Textboxen_DoubleClick);

Auf diese Weise wird die allgemeine Ereignismethode jeder dieser Textboxen zugeordnet.

Gruß Jürgen

Nachtrag: Da war Ingo schneller.

ok, Danke für die rasche Hilfe,

werde es nachher gleich ausprobieren..

vielen Dank.

Gregor

Du kannst natürlich auch im Designer bei jeder TextBox die Punkte 3 und 4 von juetho wiederholen...

nein, kann ich nicht.. weil die zur laufzeit erzeugt werden und ich mit sicherheit nicht 500 textboxen manuell bearbeite..

Memo an selbst: Erst oben lesen, dann unten posten.