Hallo zusammen,
ich habe die Beiträge bezüglich Beep und Textboxen gelesen.
Auf meinem Form liegen mehrere Textboxen.
Wenn eine TB den Focus hat, und man drückt Enter oder ESC dann macht es Beep.
Muss ich jetzt für jede Box das Ereignis Keypress codieren, oder kann man das Form-weit machen ?
Gruß jogi
Hallo jogusarge,
das habe ich hier schon mehrmals beantwortet.
Ich sags nochmal: Setze im KeyDown-Event e.Handled
auf true
.
mfg.
markus111
[SIZE][COLOR]Mein 300. Beitrag![/COLOR][/SIZE]
ich habe die Beiträge gelesen, und ich meine es wäre Keypress !!!
Aber:
Ich fragte, ob man das zentral für alle TBs eines Forms machen kann, oder ob man jedes Keydown ä Keypress oder Key[irgendwas] für jede TB codieren muss !
Du könntest dir mithilfe der Vererbung ein eigenes Usercontrol schreiben, dass auf der Textbox basiert. 😉
Hallo jogisarge,
du kannst doch den EventHandler für alle TextBoxen registrieren:
foreach (Control ctrl in Controls) { if (ctrl is TextBox) { ...
herbivore
vlt. ist dir nicht klar, dass du mehrere Events auf dieselbe Methode leiten kannst. Es wird also keine CodeWüste mit lauter xy_KeyDown() - Methoden.
Der frühe Apfel fängt den Wurm.
Hallo,
auf die Gefahr hin, dass die Frage nochmal aufkommt. Ich habe das gleiche Problem mit dem Beep. Und ich habe jetzt
e.Handled = true;
gesetzt aber das BEEP ist nicht weg. Hier mal die KeyDown Methode
private void txtKennwort_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
LogIntoGui();
e.Handled = true;
}
}
Folgendes funktionert auch nicht:
private void txtKennwort_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
e.Handled = true;
LogIntoGui();
}
}
Mache ich was falsch?
Benedikt
Ich bin jetzt ?( ?(
Bis vor kurzem gings bei mir noch...
Ich nutze eh viel lieber die AcceptButton
Eigenschaft der Form. Die legt man einfach auf den OK-Button fest und fertig. Dann muss die TextBox auch nicht den Focus haben.
mfg.
markus111
und e.SuppressKeypress=true; ?
Der frühe Apfel fängt den Wurm.
Hilft auch nichts. Ach im Grunde ist das nicht so schlimm. Habe den Beitrag nur gelesen und wollte es bei mir auch abschalten.
Aber irgendwie will es nicht so recht X(
Benedikt
naja, bei mir willes irgendwie recht. 😁
Der frühe Apfel fängt den Wurm.
Das ist dann aber schon komisch ?( An was kann das liegen? Unterschiedliche Versionen? Propertie vergessen zu setzen?
Benedikt
ka. guck, so:
public partial class frmLinkRtf : Form {
public frmLinkRtf() {
InitializeComponent();
this.Location = Screen.PrimaryScreen.WorkingArea.Location;
LoadText();
btRtfFromPlain.Click += new EventHandler(btRtfFromPlain_Click);
textBox1.KeyDown += new KeyEventHandler(textBox1_KeyDown);
}
void textBox1_KeyDown(object sender, KeyEventArgs e) {
if (e.KeyCode == Keys.Enter) { e.SuppressKeyPress = true; }
}
Der frühe Apfel fängt den Wurm.
Das "Problem" ist, dass das Enter noch an KeyPress geschickt, was wohl letztendlich erst den Beep verursacht. Dann ist ja also klar, was zu tun ist.
Das Beep soll ja nur verdeutlichen, dass Enter ein ungültiges Zeichen ist, dass in einer Multiline = false TextBox nicht rein kann.
Und wenn, wie erwähnt, AcceptButton gesetzt ist, entfällt das Problem sowieso.
Also wieso das Beep unterdrücken, wenn sonst nichts mit der Enter-Taste gemacht wird?
> Codejunky <
Hallo jogisarge,
Also wieso das Beep unterdrücken, wenn sonst nichts mit der Enter-Taste gemacht wird?
ich sehe es wie JunkyXL. Fehlt der Signalton, hätte ich das Gefühl, meine Eingabe würde auf irgendeine Weise verarbeitet. Er hat also durchaus seinen Sinn!
Die AcceptButton
-Property ist hier wirklich sinnvoll, aber das hast du bereits gelesen ...
m0rius
Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg