KeyPressEvent - mit RETURN von Feld zu Feld

xMen

Mitglied
Hallo C#-Programmierer,

ich beschäftige mich seit ca. 14 Tagen mit C# und .Net und besitze Visual Studio als Entwicklungsumgebung. Ich kommen von Delphi (...bin also umgestiegen ;) ) und benötige ein wenig Hilfe:

Ich möchte innerhalb eines Eingabedialogs über das "onKeyPress"-Ereignis mit RETURN bzw. Eingabetaste das nächste Feld ansteuern (fokussieren). Früher mit Delphi ging das über virtuelle Tastcodes und mit der Windows-API "PostMessage"-Methode hervorragend.

Kann ich derartiges auch mit C# erstellen?

Danke für alle Antworten...
 
Code:
private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
      {
         if(e.KeyChar == (char)13) 
         {
            e.Handled=true;
            MessageBox.Show(this, "Enter gedrückt");
         }

         
      }

Nitro
 
Hallo,

zunächst vielen Dank für die Mitteilung. Aber so ganz trifft dies nicht den Kern der Sache

Wie ich den Key (char) 13 auswerte, war mir bekannt. Ich wollte wissen, welche Methode ich aktivieren muss, um den nächsten Eingabefokus zu erreichen

Wenn ich beispielsweise 3 Textboxen habe, die in der Tabulatorreihenfolge auch alle schön hintereinander angelegt sind, benötige ich eine Methode, die aufgrund des eingetretenen KeyPress-Events automatisch in die nächste Textbox wechselt...

Ich könnte nun natürlich bei jeder Textbox ein KeyPress-Event programmieren, um dann z. B. textBox2.Focus(), dann textBox3.Focus(), usw. zu hinterlegen. Ich möchte das jedoch mit "einem einzigen" KeyPress-Event erreichen und zwar für alle "erreichbaren" Eingabefelder in einem Dialog.

In Delphi wurden die WIN-API-Nachrichten (Messages) dazu ausgewertet. Doch wie kann ich das in C# erledigen

Beispiel Delphi:

PHP:
{*******************************************************************************
* Procedure KeyDown
* Reagiert auf Return und Esc
*******************************************************************************}

Procedure TForm1.DBEdit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
Begin
  IF Key in [VK_RETURN] Then Begin
    PostMessage(Screen.ActiveForm.Handle, WM_NEXTDLGCTL, 0, 0);
  End;
End;
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück