![]() |
[VB.net] beep bei Enter Eingabe in Textbox unterdrücken
Moin,
ich muss mich derzeit ein wenig mit VB-net herumschlagen, und stehe vor einem kleinen Problem. Ich möchte eine Eingabe in einem Editfeld mit Enter abschliesen, soweit kein Problem, doch möchte ich hier keinen System beep haben. Unter Delphi hab ich hier immer mit erfolg key auf #0 gesetzt, doch in VB.net scheint das nicht zu funktionieren.
Code:
Weis jemand von euch rat ?
Private Sub TextBox1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
Try If e.KeyChar = Chr(13) Then 'mach irgendwas e.KeyChar = Chr(0) End If Catch MsgBox("Keine gültige Eingabe") End Try End Sub Verwendete Version VisualBasic.Net 8.0 Express Edition |
Re: [VB.net] beep bei Enter Eingabe in Textbox unterdrücken
Hallo,
Probier mal das:
Code:
If e.KeyChar = Chr(13) Then
e.Handled = True e.KeyChar = Chr(0) End If |
Re: [VB.net] beep bei Enter Eingabe in Textbox unterdrücken
Ich habe von VB.NET zwar keine Ahnung, hab aber im Internet was gefunden:
Code:
Probier mal, obs funktioniert.
e.SuppressKeyPress = True
Mfg |
Re: [VB.net] beep bei Enter Eingabe in Textbox unterdrücken
Danke toms das war es, man muss also noch mitteilen, ob die Veränderung übernommen werden muss, auch nicht schlecht.
@Fussball-Robby "SuppressKeyPress" gibt es da nicht, aber dennoch danke. |
Re: [VB.net] beep bei Enter Eingabe in Textbox unterdrücken
Eigentlich dürfte es nicht piepen, wenn du Handled auf true setzt - ein zusätzliches Setzen des KeyChar auf 0 sollte nicht notwendig sein.
Edit: Außerdem prüft man nicht auf chr(13), sondern auf Keys.Return bzw. Keys.Enter - wenn die Syntax unter VB.NET genauso ist ;) |
Re: [VB.net] beep bei Enter Eingabe in Textbox unterdrücken
Tatsache, kannst du mir das auch erklären ?
Ich ging bisher immer davon aus, es beep weil enter gedrückt wurde und wenn man die Taste dann quasi ändert, bleibt der beep aus. Keys kannte ich noch nicht, beschäftige mich bisher nur wenige Stunden mit VB und mit .net hatte ich auch noch nichts am Hut. Aber was den nun Keys.Return oder Keys.Enter :wink: ? |
Re: [VB.net] beep bei Enter Eingabe in Textbox unterdrücken
Ich glaube, Keys.Return. Wie gesagt, ich kenne mich mit VB.NET nicht aus, aber ich denke, wenn man e.Handled = True setzt, sagt man dem Programm, dass das Drücken der Taste bereits behandelt wurde, d.h. der Tastendruck wurde schon ausgewertet, damit das Programm einen bereits mauell ausgewerteten Tastendruck nicht noch mal behandelt.
Mfg |
Re: [VB.net] beep bei Enter Eingabe in Textbox unterdrücken
Keys.Return ist die große Eingabetaste, während Enter die auf dem Numblock ist... oder so ähnlich *g*
Keys ist ein Enum, der Konstanten für alle Tasten enthält. Der KeyCode in deinen EventArgs ist von diesem Typ. chr(13) fordert genaues Wissen darüber, welcher Keycode einer Taste zugrunde liegt - das ist schlecht. Auch wenn es unwahrscheinlich ist, dass sich der Code der Eingabetaste mal ändert. Keys.Return müsste jedenfalls das von dir gesuchte sein - ich weiß ehrlich gesagt nicht, ob es sinnvoll ist, auch auf Keys.Enter zu testen. Edit: Ich las gerade, dass die Werte von Keys.Return und Keys.Enter identisch sind. Damit wäre eine Unterscheidung hinfällig. Der Beep kommt nicht dadurch, dass jemand Enter drückt, sondern dadurch, dass die Behandlungsroutine, die nach deinem Ereignishandler dran kommt, bei einem Enter piept. Wenn du jedoch Handled auf true setzt, dann sagst du dieser Routine, dass du das Ereignis schon behandelt hast und sie nichts weiter tun soll, also ist das auch genau das, was du suchst. |
Re: [VB.net] beep bei Enter Eingabe in Textbox unterdrücken
Danke, da kommt Licht ins Dunkle.
Aber e.KeyChar und Keys.Return sind nicht kompatibel, bzw. der Vergleichsoperator ist nicht implementiert. Und e.KeyChar.ToString() = Keys.Return.ToString() funktioniert ebenfalls nicht. |
Re: [VB.net] beep bei Enter Eingabe in Textbox unterdrücken
Wirf einmal einen Blick in die Hilfe, unter KeyChar findest du genau dein Problem gelöst - sowohl in C# als auch VauBe.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz