Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [VB.net] beep bei Enter Eingabe in Textbox unterdrücken (https://www.delphipraxis.net/110826-%5Bvbulletin-net%5D-beep-bei-enter-eingabe-textbox-unterdruecken.html)

MrKnogge 25. Mär 2008 13:54


[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:
    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
Weis jemand von euch rat ?

Verwendete Version VisualBasic.Net 8.0 Express Edition

toms 25. Mär 2008 14:00

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

Fussball-Robby 25. Mär 2008 14:02

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:
e.SuppressKeyPress = True
Probier mal, obs funktioniert.

Mfg

MrKnogge 25. Mär 2008 14:26

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.

OregonGhost 25. Mär 2008 14:37

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 ;)

MrKnogge 25. Mär 2008 14:47

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: ?

Fussball-Robby 25. Mär 2008 14:53

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

OregonGhost 25. Mär 2008 14:56

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.

MrKnogge 25. Mär 2008 15:21

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.

Khabarakh 25. Mär 2008 15:27

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 17:53 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz