Eingabetaste

Hallo Wissende,

Ich weiß, dass diese frage total amateurhaft wirken muss, aber ich stelle sie trotzdem:

wie ich eine bestimmte tastatur eingabe registriere (z. B. Enter)
hab in der onlinehilfe sowas wie

public void OnKeyDown (object sender, KeyDownEventArgs e)
{
if (e.Key == Key.return)
{

}
}
gefunden hat aber leider net gefunzt^^
hoffe auf hilfe
gruß seeedy

Hallo!
Das, was Du oben an Code geschrieben hast, ist schon OK (außer return statt Return und dass der Eventhandler üblicherweise nicht public ist). Hast Du denn das KeyDown-Ereignis überhaupt mit dieser Ereignisbehandlungsprozedur verknüpft?
Irgendwo müsste bei Dir auch stehen:

theControlIWantToGetKeyboardEventsFrom.KeyDown += new KeyEventHandler(this.OnKeyDown);

(oder so ähnlich, ich hab’ den genauen Typ des Delegates nicht im Kopf).

Wenn das fehlt, kann es nicht funktionieren.

Außerdem könnte es noch sein, dass das betreffende Steuerelement, das den Focus besitzt, das Ereignis „wegfängt“ und Dein Form darum das Tastenereignis nicht mehr bekommt.
Dafür gibt es eine KeyPreview -Property bei Form.

Ich denke, eines davon müsste es sein.
Ansonsten: Mehr Code bitte…

Gruß,
Martin

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo

Ich weiß, dass diese frage total amateurhaft wirken muss,

Also man könnte zumindest mal einen Blick ins Openbook riskieren: http://openbook.galileocomputing.de/visual_csharp/vi…

mfg M.L.

Hallo Wissende,

Ich weiß, dass diese frage total amateurhaft wirken muss, aber
ich stelle sie trotzdem:

wie ich eine bestimmte tastatur eingabe registriere (z. B.
Enter)
hab in der onlinehilfe sowas wie

public void OnKeyDown (object sender, KeyDownEventArgs e)
{
if (e.Key == Key.return)
{

}
}
gefunden hat aber leider net gefunzt^^
hoffe auf hilfe
gruß seeedy

Hallo!
Das, was Du oben an Code geschrieben hast, ist schon OK (außer
return statt Return und dass der Eventhandler üblicherweise
nicht public ist). Hast Du denn das KeyDown-Ereignis überhaupt
mit dieser Ereignisbehandlungsprozedur verknüpft?
Irgendwo müsste bei Dir auch
stehen:

theControlIWantToGetKeyboardEventsFrom.KeyDown
+= new KeyEventHandler(this.OnKeyDown);

(oder so
ähnlich, ich hab’ den genauen Typ des Delegates nicht im
Kopf).

Wenn das fehlt, kann es nicht funktionieren.

Außerdem könnte es noch sein, dass das betreffende
Steuerelement, das den Focus besitzt, das Ereignis „wegfängt“
und Dein Form darum das Tastenereignis nicht mehr bekommt.
Dafür gibt es eine KeyPreview -Property bei
Form.

Ich denke, eines davon müsste es sein.
Ansonsten: Mehr Code bitte…

Gruß,
Martin

Geht leider nicht so wie ich es mir vorgestellt hab,
hier noch mehr code:

private void richTextBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Return)
{

webBrowser1.Navigate(richTextBox1.Text);
if (checkBox1.Checked == true)
{

www = System.Convert.ToString(webBrowser1.Url);
url = url + „\n“ + DateTime.Today.Now + " " + www;
richTextBox12.Text = url;
}

}
}

Und verlinkt hab ich das ganze so:

this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.richTextBox1_KeyDown);

aber es passiert dann rein gar nichts wenn ich es ausprobiere,

gruß seeedy

Hallo nochmal!

Geht leider nicht so wie ich es mir vorgestellt hab,
hier noch mehr code:
private void richTextBox1_KeyDown(object sender, KeyEventArgs
e)
{
if (e.KeyCode == Keys.Return)
{
webBrowser1.Navigate(richTextBox1.Text);
if (checkBox1.Checked == true)
{
www =
System.Convert.ToString(webBrowser1.Url);
url = url + „\n“ + DateTime.Today.Now + " " +
www;
richTextBox12.Text = url;
}
}
}

Aha. Du möchtest also, dass wenn in einer RichTextBox [Return] gedrückt wird, der darin stehende Text als URL für ein WebBrowser-Control dienen soll…

Und verlinkt hab ich das ganze so:
this.KeyDown += new
System.Windows.Forms.KeyEventHandler(this.richTextBox1_KeyDown);

Das ist schon das Problem:
Du registrierst den EventHandler für this (was zu diesem Zeitpunkt vermutlich das Form ist, oder?
Das Form hat aber nicht den Focus, sondern die RichTextBox, darum wird garantiert nicht das KeyDown des Forms feuern…

aber es passiert dann rein gar nichts wenn ich es ausprobiere,

Wenn Du statt dessen

richTextBox1.KeyDown += ...

schreibst, wird es funktionieren.

Gruß,
Martin

Hallo Seeedy,

so wie es hier im Anhang steht ist es komplett richtig ! Ausser - es fehlt noch ein Eintrag im Load Sektion. Ich kann mich noch errinnern ds hier eine Zeile Code hinterlegt werden muss. Eventhandler etc. braucht man nicht. Muesste mal im Geschäft aufm Rechner nachsehn - da hatte ich es schon verwendet.

Also - soweit paßt das!

bye
Markus

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Vielen Dank für eure Hilfe es hat geklappt^^

mfG seeedy