Laden...

Beep für alle TextBoxen abschalten

Erstellt von jogisarge vor 14 Jahren Letzter Beitrag vor 14 Jahren 4.658 Views
J
jogisarge Themenstarter:in
154 Beiträge seit 2006
vor 14 Jahren
Beep für alle TextBoxen abschalten

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

479 Beiträge seit 2008
vor 14 Jahren

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]
[Follow me on Twitter](http://twitter.com/blendingsky)
J
jogisarge Themenstarter:in
154 Beiträge seit 2006
vor 14 Jahren

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 !

7
13 Beiträge seit 2009
vor 14 Jahren

Du könntest dir mithilfe der Vererbung ein eigenes Usercontrol schreiben, dass auf der Textbox basiert. 😉

49.485 Beiträge seit 2005
vor 14 Jahren

Hallo jogisarge,

du kannst doch den EventHandler für alle TextBoxen registrieren:

foreach (Control ctrl in Controls) { if (ctrl is TextBox) { ...

herbivore

5.299 Beiträge seit 2008
vor 14 Jahren

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.

78 Beiträge seit 2009
vor 14 Jahren

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

479 Beiträge seit 2008
vor 14 Jahren

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

[Follow me on Twitter](http://twitter.com/blendingsky)
5.299 Beiträge seit 2008
vor 14 Jahren

und e.SuppressKeypress=true; ?

Der frühe Apfel fängt den Wurm.

78 Beiträge seit 2009
vor 14 Jahren

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

5.299 Beiträge seit 2008
vor 14 Jahren

naja, bei mir willes irgendwie recht. 😁

Der frühe Apfel fängt den Wurm.

78 Beiträge seit 2009
vor 14 Jahren

Das ist dann aber schon komisch ?( An was kann das liegen? Unterschiedliche Versionen? Propertie vergessen zu setzen?

Benedikt

5.299 Beiträge seit 2008
vor 14 Jahren

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.

1.665 Beiträge seit 2006
vor 14 Jahren

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?

1.002 Beiträge seit 2007
vor 14 Jahren

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