myCSharp.de - DIE C# und .NET Community (https://www.mycsharp.de/wbb2/index.php)
- Entwicklung (https://www.mycsharp.de/wbb2/board.php?boardid=3)
-- Grundlagen von C# (https://www.mycsharp.de/wbb2/board.php?boardid=88)
--- Mithilfe von Enter eine Methode ausführen (https://www.mycsharp.de/wbb2/thread.php?threadid=121235)


Geschrieben von SilverStorm am 03.11.2018 um 14:10:
  Mithilfe von Enter eine Methode ausführen
Hallo MyCSharpForum,
momentan arbeite ich schon sehr lange an einem Programm, welches ein Lottospiel simuliert in C# 2008 Express Edition auf Windows 10. Dabei bin ich aber gerade bei einem Punkt angelangt, wo mir so langsam die Ideen ausgehen, mein Problem zu lösen.

Ich möchte gerne, dass mein Programm, nachdem ich die Taste Enter gedrückt habe, meine Methode ausführt. Um euch nicht zu verwirren, stelle ich hier mal nur diesen Teil des Programms dar, wo das Problem liegt:

C#-Code:
void TippEnde()
{
txtZahl1.Enabled = false;
txtZahl2.Enabled = false;
txtZahl3.Enabled = false;
txtZahl4.Enabled = false;
txtZahl5.Enabled = false;
txtZahl6.Enabled = false;
cmdTipp.Visible = false;
cmdLottozahlen.Visible = true;
}
//in einer anderen Methode, was bei mir nicht funktioniert:
AcceptButton = TippEnde();

txt= Textbox
cmd = (command) button
Zahl1, Zahl2... sind zwar keine aussagekräftigen Variablen, aber in diesem Fall verwende ich sie für die die Zahlen, welche als Tipp abgegeben werden in die jeweilige der 6 Textboxen.

Vielleicht weiß ja jemand von euch, wie ich das programmieren kann, sodass beim Drücken von Enter die void TippEnde() ausgeführt wird.

-SilverStorm


Geschrieben von Abt am 03.11.2018 um 16:20:
 
Jedes Control (zB TextBox) hat ein KeyDown-Event.
Das musst abonnieren, prüfen ob der Key eben Enter (=> Return) ist und dann Deine Methode ausführen.


Geschrieben von SilverStorm am 03.11.2018 um 17:27:
 
Abt Danke für die Antwort, doch leider bin ich mit meinen Programmierkenntnissen noch nicht so weit, wie du beschrieben hast. Und ich will ja das auch nicht bezogen auf eine Textbox ausführen, also etwas ausrechnen in nee Textbox. Ich will einfach nur, dass die Methode Void TippEnde dann in der anderen ausgeführt wird, wenn ich Enter drücke.

Falls du denkst, dass deine Variante damit auch funktionieren würde, dann würde ich mich sehr freuen, wenn du dir einmal kurz Zeit nehmen würdest und mir das als CSharp Code aufschreiben könntest, so wie es auch in der Forms Anwendung geschrieben wird.

MfG Silver


Geschrieben von Abt am 03.11.2018 um 21:42:
 
Das Forum ist eine Hilfe zur Selbsthilfe.
Und gewisse Dinge - wie Grundlagen - lernt man am effizientesten selbst.
 [FAQ] Wie finde ich den Einstieg in C#?
Aber das ist nicht schlimm, wir haben alle klein angefangen.

Wenn ich Dir den Code schreibe, dann hast Du Code der funktioniert - aber nichts gelernt, weil Du den Code nicht verstehst.
Das ist nicht Sinn der Sache ;-) Davon abgesehen ist es nicht die Aufgabe von uns Dir fertige Lösungen zu liefern. Das Forum ist kein kostenloser Code-Generator ;)

PS:  [Hinweis] Wie poste ich richtig?
Ist hier nicht so gern gesehen, wenn man nach fertigen Lösungen fragt und quasi die Arbeit auf andere abwälzt ;-)


Geschrieben von Taipi88 am 05.11.2018 um 09:07:
 
Hi SilverStorm,

es gibt mehrere Wege die dich hier zum Ziel bringen können.

1. Accept-Button
Der Accept-Button ist ein Property auf deiner Form, das als Wert tatsächlich einen Button erwartet - und nicht wie deinerseits übergeben eine Methode. Um dein Problem über den Accept-Button zu lösen - musst du einen Button haben, der deine Methode bei "OnClick" ausführt. Dann kannst du "AcceptButton = myButton;" schreiben.

2. Abt's Variante
Da ich davon ausgehe, dass du ohnehin einen "Fertig"/"Absenden"-Button irgendwo hast - würde ich dir ehrlich gesagt die Vorgehensweise mit dem Accept-Button empfehlen. Falls du das nicht hast und auch nicht willst - musst du die Tastatureingaben eben selbst behandeln - dafür gibt's ne Doku.

Grundlegend musst du verstehen: Du drückst zwar <Enter> - aber im Standard bekommt das erstmal nur das fokussierte Control (hier wohl eine TextBox) mit. Wenn das so nicht gewollt ist - musst du deine Form entsprechend einstellen. (vgl. "KeyPreview")

Ein Beispiel wie man Tastatureingaben im Formular selbst (deiner Form) behandelt - findest du z.B. hier:  https://docs.microsoft.com/de-de/dotnet/framework/winforms/how-to-handle-keyboard-input-at-the-form-level´

Den Code wird dir hier niemand schreiben, hier gibt's immer nur Hilfe zur Selbsthilfe. (Und das ist gut so - denn wenn du nicht weißt, wie man die Ereignisse von Controls behandelt - ist es für dich an der Zeit einen Blick in die Doku zu werfen)

LG


© Copyright 2003-2020 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 28.03.2020 22:17