Autor Beitrag
Fabiii321
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Sa 01.09.12 22:18 
Hallo,
ich habe eine kurze Frage:

Ich habe eine kleine Art Tastatur erstellt mit mehreren Buttons.
Es gibt diese Buttons:
1
2
3
4
5
6
7
8
9
E

Diese Buttons sind dazu da mehrere Zahlen in ein Textfeld zu schreiben.
Ich habe auch hier ein Code den jeder Button zugewiesen bekommt:
ausblenden C#-Quelltext
1:
TextBox1.Text = "1";					

jetzt will ich aber das diese Zahlen aneinander gefügt werden.
Also nicht dass wenn ich auf 1 klick und danach auf "2" klick dass dan nur noch "2" im Textfeld steht sondern "12".
Dass sich praktisch die Zahlen hintereinander schreiben.
SO wie bei einer Tastatureingabe halt.
Erst wenn ich auf den Button "E" drücke soll dann was abgeschickt werden.

Vielen Dank für eure Bemühungen
Gruß
Fabi

Moderiert von user profile iconTh69: C#-Tags hinzugefügt
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 01.09.12 22:35 
Hallo!

Du musst einfach nur zwei Strings aneinander hängen, also einfach (als Beispiel) string s = "a" + "b", was dann "ab" ergibt.

Viele Grüße,
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Palladin007
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1282
Erhaltene Danke: 182

Windows 11 x64 Pro
C# (Visual Studio Preview)
BeitragVerfasst: So 02.09.12 01:15 
Eine so einfache Aufgabe würde ich persönlich in nur einem Event erledigen.
Für eine Forms-Oberfläche würde das dann so aussehen:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
private void KeyBoardNumberButtons_Click(object sender, EventArgs e)
{
    var BtnText = ((Button)sender).Text;
    if (BtnText.Length == 1)
    {
        if (Convert.ToChar(BtnText) >= '0' && Convert.ToChar(BtnText) <= '9')
        {
            TextBox1.Text += BtnText;
        }
    }
}

private void KeyBoardSendButton_Click(object sender, EventArgs e)
{
    if (((Button)sender).Text == "E")
    {
        SendText(TextBox1.Text);
    }
}

private void SendText(string txt)
{
    // Sende den eingegebenen Text
}


Ich weiß, danach hast du nicht gefragt, aber vielleicht hilft es ja trotzdem ^^

Hab das nur nebenbei geschrieben, kann also sein, dass sich mir der eine oder andere Fehler eingeschlichen hat.
Um das zu nutzen, kannst du allerdings nicht einfach im Forms-Editor auf einen Button doppelklicken. Du musst dazu in den Events das Click-Event raus suchen und dort dann diese Methode angeben. Die sollte eigentlich gleich als passende Methode erkannt werden.
Dann wird bei jedem der Buttons von 1 bis 9 und E diese Methode aufgerufen. Wenn es als Text 1 bis 9 enthält (49 bis 57 sind die Dezimal-Zahlen, in die ein Zeichen nach der ASCII-Tabelle explizit konvertiert werden kann. Daher wird der Text erst in char und dann in int umgewandelt), dann wird dieser Text in die TextBox angehängt. Wenn es ein großes "E" ist, wird der Text gesendet, oder etwas anderes passiert.

Das, wonach du eigentlich gefragt hattest, ist folgendes:
ausblenden C#-Quelltext
1:
TextBox1.Text += BtnText;					


Da du ja eigentlich nur einen Buchstaben anfügen willst, bietet sich die Kurzschreibweise hier += besser an.
Das funktioniert mit jedem Text.


Zuletzt bearbeitet von Palladin007 am Mo 03.09.12 17:52, insgesamt 1-mal bearbeitet
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: So 02.09.12 13:12 
Zitat:
ausblenden C#-Quelltext
1:
if ((int)Convert.ToChar(BtnText) < 58 | (int)Convert.ToChar(BtnText) > 48)					

Oder? Sollte wohl eher & sein.

Besser gleich char.IsDigit verwenden. Das Fabiii321 keine 0 will ist wohl eher nicht Absicht.

Moderiert von user profile iconTh69: C#-Tags hinzugefügt

Für diesen Beitrag haben gedankt: Palladin007
Fabiii321 Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Mo 03.09.12 08:36 
Hallo,
vielen vielen Dank !
funktioniert !

Sorry sdass ich euch für so eine einfache Frage fragen musste.

Gruß
Fabi
Palladin007
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1282
Erhaltene Danke: 182

Windows 11 x64 Pro
C# (Visual Studio Preview)
BeitragVerfasst: Mo 03.09.12 17:54 
Danke an Th69, dass sie mich auf ein paar kleine DInge in meinem Beispiel-Code hin gewiesen hat.

Hab es korrigiert und auch kleine Verbesserungs-Vorschläge umgesetzt (siehe neues Event und der if-Block mit den Zahlen).