C#: String in TextBox ändern bei Click auf Button

Herby

Enthusiast
Thread Starter
Mitglied seit
21.03.2005
Beiträge
3.919
Servus.

Wie könnte man sowas handhaben? Ich denke mir in etwa so, aber das klappt leider nicht.. ^^

Code:
if (this.ButtonA.Click)
	{
	this.ComboBoxBefestigung.Text = "A";
	}

Dort lautet die Fehlermeldung:

Das Ereignis 'System.Windows.Forms.Control.Click' kann nur links von += oder -= angezeigt werden.

Ich bin im Moment ein wenig am Rumspielen, weil ich C# besser lernen möchte. Aber da komme ich leider noch nicht alleine drauf und bei Dr. Google finde ich nix zu, was mir hilft.
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Ja, die Idee hat ich auch schon, álà:

Code:
private void ButtonA_Click(object sender, System.EventArgs e)
		{
			this.comboBoxBefestigung.Text = "A";
		}

Aber was, wenn man nun mehre Buttons hat, z.B. A-C, und jeweils A-C in die ComboBox schreiben will? Muss man dann das Event für jeden einzelnen Button übernehmen oder kann man das auch zusammen fassen?
 
Hallo, irgenwie blick ich net was du willst ?

DU hast 4 Buttons mit A B C D und mit klick auf den jeweiligen Button willst du dann
die Textbox beschreiben?

also klick auf Button "A" erzeugt in einer Textbox einen Text z.b. "A" ?
 
Genau. Und ein Klick auf ButtonB erzeugt eben ein "B"..

Ist im Endeffekt nur eine Spielerei, aber es interessiert mich gerade mal. :)


Nur finde ich es umständlich, für jeden Button den Event einzeln zu übernehmen. Da muss es doch eine bessere Lösung für geben. (Mal weiter gedacht.. 10 Buttons = 10 Events usw...)
 
du koenntest die buttons zb in einer Schleife erzeugen lassen.
 
Kannst du das mal bitte näher erläutern?
 
Also ich sehe da keinen anderen Weg,
du könntest höchstens folgendes tun:

EIN BUTTON zum eintragen,
EINE Textbox (1) zur Auswahl des Textfeldes,
EINE Textbox (2) zum eintragen des Buchstaben in das Label

Du gibst also in die Textbox Nr. 1 die "ID" bzw Nummer des textfeldes ein welches
du beschreiben willst, in die Textbox Nr.2 gibst du ein was du hineinschreiben willst.
Mit Klick auf den Button wird die Aktion ausgeführt.

So würde ich das machen :)

Schöne grüße
 
ähm aber will er den das nur der zuletzt gedrückte Buchstabe angezeigt wird oder alle?
 
Nein, du der, welcher Button angeklickt wurde. Also klicke ich auf ButtonC, dann steht "C" in der TextBox usw..

Wie gesagt, ist einfachzum üben..
 
Doch man kann es zusammenfassen,

Code:
private void button_Click(object sender, EventArgs e)
        {
            if(sender = buttonA)
                this.comboBoxBefestigung.Text = "A";
            else if (sender = buttonB)
                this.comboBoxBefestigung.Text = "B";
            else if (sender = buttonC)
                this.comboBoxBefestigung.Text = "C";
            //usw.
        }

du legst den eventHandler Click auf die Methode button_Click und fertig
 
Zuletzt bearbeitet:
Also da meckert er bei mir über einen Fehler im Designer-Code.

Code:
this.buttonA.Click += new System.Event.Handler(this.ButtonA_Click);

Das ist nicht definiert.

Und ohne das meckert er ebenfalls..
 
der Sinn eines += an dieser Stelle will sich mir auch nicht ganz erschliessen.
 
Das hat das Visual Studio ganz alleine angelegt..
 
das += an der Stelle ist schon richtig so, allerdings solltest mal auf das parameter schauen
dort müsste nämlich, wenn du die Methode von lordfritte verwendest

this.button_Click

stehen und nicht

this.ButtonA_Click

Oder wähl einfach nochmal bei dem Button die Funktion per Menü neu aus
 
Ja, das hatte ich geändert. Leider ohne Erfolg.
 
dann nimmt nochmal die Methode bei dem Clickevent weg und legs nochmal neu an.
 
Ja, die Idee hat ich auch schon, álà:

Code:
private void ButtonA_Click(object sender, System.EventArgs e)
		{
			this.comboBoxBefestigung.Text = "A";
		}

Aber was, wenn man nun mehre Buttons hat, z.B. A-C, und jeweils A-C in die ComboBox schreiben will? Muss man dann das Event für jeden einzelnen Button übernehmen oder kann man das auch zusammen fassen?

Mal ein Ansatz:

Also ich geh mal davon aus du benutz ein Visual Studio oder Sharpdevelop.

- Neue Form mit 3 Buttons und einer Textbox
- Der Buttontext ist A..C, am besten noch den Buttons eindeutige Bezeichungen... in meinem Bsp ist das btnSammlung1..3
- Dann schreibst dir folgende Prozedur
Code:
private void btnSammlung_Click(object sender, EventArgs e)
        {
            Button gerdueckterButton = (Button)sender;
            if (gerdueckterButton.Name.Contains("Sammlung"))
            {
                textBox1.Clear();
                textBox1 .Text  = gerdueckterButton.Text;
            }
        }
- gehst zurück in die Designansicht und fügst die Prozedur unter Eigenschaften -> Ereignisse(Blitzsymbol) -> Click ...bei jedem Button ein.

Das wars

Somit kannst du das Clickereignis aller 3 Buttons(oder mehr) in einer Prozedur auswerten. Die eindeutige Bezeichung btnSammlungXYZ und das IF-Konstrukt könnte man auch weglassen. Sie dienen lediglich der Sicherheit um fälschlich zugeordnette Ereignisse anderer Button zu differenzieren, welche nicht zur "Gruppierung" gehören, also wenn man z.B. einem btnClose.Click die obige Prozedur zuweisen würde.

Richtig gut macht sich so eine Zusammenfassung z.b. beim Validieren von Eingabefeldern.

mfg schwan01
 
Taschenrechner

Ich vermute du versuchs einen Taschenrechner oder der gleichen zu programmieren.

Ich hab das Problem auf folgende weise gelöst:

Code:
private void btn_5_Click(object sender, EventArgs e)
            {
                // Durch Klick auf Button5 wird in der Textbox eine "5" geschrieben

                txt_ausgabe.Text += "5";    //+= Bedeutet: Zeichen werden Nacheinander ausgegeben
            }
Ich hoffe konnte weiterhelfen.

Mfg Ivan:)
 

Ähnliche Themen

Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh