tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
8
ZUGRIFFE
5269
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Java_Neuling Tutorials.de Gastzugang
    Morgen!

    Auf alle fälle hab ich ein Textfeld in das ich nur Zahlen eingeben lassen möchte das klappt auch wunderbar das Komma ist auch schon eingebunden (der Code ist aus dem OpenBook von Galileo Computing) jetzt hab ich die ganze zeit versucht die Löschen-Taste zuzulassen kriegs aber nicht hin die Entfernen-Taste funktioniert aber die Löschen-Taste geht ums verrecken nicht. (Ich hoffe das ich den Code richtig verstehe )
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
        'Diese Zeilen überprüfen die Eingabe im tf_Einwurf während der Eingabe 'numeric' macht dies nach dem das Ereignis ausgelöst worden ist
        Private Sub tf_Einwurf_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles tf_Einwurf.KeyPress
            Select Case Asc(e.KeyChar.ToString)
                Case Asc(",")
                    If Me.tf_Einwurf.Text.IndexOf(",") >= 0 Then 'Wenn ein Komma schon vor kommt dann verhindere das 2
                        e.Handled() = True
                    End If
                Case Is < Asc("0")
                    e.Handled() = True  'Eingaben die Kleiner 0 sind verhindern
                Case Is > Asc("9")
                    e.Handled() = True  'Eingaben die größer 9 sind verhindern
                Case Else
                    e.Handled() = False 'Sonst ist alles erlaubt
            End Select
        End Sub
    Ich hoffe ihr könnt mir helfen... Danke im voraus!

    MfG
    Java_Neuling
     

  2. #2
    Avatar von FwDonnerbalken
    FwDonnerbalken FwDonnerbalken ist offline Mitglied Brokat
    Registriert seit
    May 2005
    Beiträge
    323
    Moin moin,

    weil ich gerade kein Visual Studio zur Hand habe, musste ich mal mein Google bemühen.

    Also, mit KeyPress geht das, was du willst, laut MSDN nicht. Du bekommt nur das KeyChar.

    Verwende stattdessen das KeyDown bzw. KeyUp Event. Die KeyEventArgs liefern dir einen KeyCode, diesen könntest du verwenden um ebenfalls auf die Rücktaste und gezielt auf die Delete (Entf) Taste zu reagieren.
     
    Gruß,
    Sebastian

    Mein XING Profil

    Hilfreiche Antworten bitte bewerten!

  3. #3
    Java_Neuling Tutorials.de Gastzugang
    Hi!

    hmm ich hab des jetzt mal so probiert wie ich des verstanden hab und hab mir des mit KeyUp geschrieben aber dann wird irgendwie garnichts mehr überprüft
    Bin totaler VB Neuling
    Hättest vllt nicht ein Stück Code für mich an dem ich mich orientieren bzw auf dem ich aufbauen könnte

    MfG
    Java_Neuling
     

  4. #4
    Avatar von FwDonnerbalken
    FwDonnerbalken FwDonnerbalken ist offline Mitglied Brokat
    Registriert seit
    May 2005
    Beiträge
    323
    Falls mir niemand zuvor kommt, werde ich heute Abend ein wenig Code zu diesem Thema posten.

    Bis dahin versuche es mal mit dem KeyDown-Ereignis, du willst ja die Eingabe verhindern, bevor das Zeichen in das Textfeld geschrieben wird.
    Geändert von FwDonnerbalken (12.02.08 um 13:39 Uhr) Grund: Meine Rechtschreibung! Ne, ne!
     
    Gruß,
    Sebastian

    Mein XING Profil

    Hilfreiche Antworten bitte bewerten!

  5. #5
    Avatar von FwDonnerbalken
    FwDonnerbalken FwDonnerbalken ist offline Mitglied Brokat
    Registriert seit
    May 2005
    Beiträge
    323
    So, leider einen Tag zu spät und doch komplexer als ich zunächst annahm.

    Code csharp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    private void textBox1_KeyDown(object sender, KeyEventArgs e)
    {
        if (!((e.KeyValue >= 48 && e.KeyValue <= 57) ||     //Prüfung auf Tasten 0-9
            (e.KeyValue >= 96 && e.KeyValue <= 105) ||      //Prüfung auf NumPad 0-9
            (e.KeyCode == Keys.Back ||                      //Rücktaste
            e.KeyCode == Keys.Left ||                       //Pfeiltasten
            e.KeyCode == Keys.Right ||
            e.KeyCode == Keys.Delete) ||                    //Entf-Taste
            (e.KeyValue == 188 && !((TextBox)sender).Text.Contains(","))))      //Komma, nur einmalig zulassen
        {             
            e.SuppressKeyPress = true;      //KeyPress unterdrücken
            e.Handled = true;               
        }
    }
     
    Gruß,
    Sebastian

    Mein XING Profil

    Hilfreiche Antworten bitte bewerten!

  6. #6
    Java_Neuling Tutorials.de Gastzugang
    Hey!

    erst mal danke für deine Mühe!

    was mir nur grad auffällt das bei mir alles mit Sub ist und bei dir mit Private void außerdem hab ich in meinem ganzen Code noch keine geschweifte Klammer (glaub ich!)
    Falls die Frage dumm ist tuts mir leid bin seit ca 2 Wochen an VB.Net aber dein Code passt irgendwie nicht zu meinem kannst du mir vllt sagen wieso?
    Deiner erinnert mich mehr an Java

    MfG
    Java_Neuling
     

  7. #7
    Avatar von FwDonnerbalken
    FwDonnerbalken FwDonnerbalken ist offline Mitglied Brokat
    Registriert seit
    May 2005
    Beiträge
    323
    Hi,

    sorry, habe ich nicht bemerkt, das war C-Sharp Code ich habe den mal eben durch nen Code Converter gejagt und dabei kam das hier raus.
    Sollte eigentlich in der KeyDown-Methode laufen.

    Code vb:
    1
    2
    3
    4
    
    If Not ((e.KeyValue >= 48 AndAlso e.KeyValue <= 57) OrElse (e.KeyValue >= 96 AndAlso e.KeyValue <= 105) OrElse (e.KeyCode = Keys.Back OrElse e.KeyCode = Keys.Left OrElse e.KeyCode = Keys.Right OrElse e.KeyCode = Keys.Delete) OrElse (e.KeyValue = 188 AndAlso Not DirectCast(sender, TextBox).Text.Contains(","))) Then
        e.SuppressKeyPress = True
        e.Handled = True
    End If
     
    Gruß,
    Sebastian

    Mein XING Profil

    Hilfreiche Antworten bitte bewerten!

  8. #8
    DasBöse DasBöse ist offline Mitglied Bronze
    Registriert seit
    Mar 2007
    Beiträge
    32
    das ist klar weil den Code den Donnerbalken gepostet hat ist C# und du brauchst VB.Net.

    am Besten du schreibst es einfach manuell in deinen Code rein (nicht mit Copy&Paste) lässt die ganzen geschweiften Klammern weg und auch die ";".

    Zur Not kannst du auch noch einen C# to VB.Net Translator googeln. Ich weiß aber nicht ob die zu 100% richtige Ergebnisse liefern.

    Bei der ersten Methode lernst du defintiv mehr über deinen Code

    Ich hoffe ich konnte dir weiterhelfen.

    mFg

    \\EDIT: mist zu spät
     

  9. #9
    Java_Neuling Tutorials.de Gastzugang
    Hi!

    vielen vielen Dank für die Hilfe endlich klappt es

    MfG
    Java_Neuling
     

Ähnliche Themen

  1. Tastatur Eingaben sperren
    Von Java_Neuling im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 2
    Letzter Beitrag: 20.03.08, 07:54
  2. User - Eingaben in einem Applet sperren?
    Von alfi82 im Forum Java
    Antworten: 5
    Letzter Beitrag: 05.03.08, 19:16
  3. Tastatur sperren
    Von dobermant im Forum Visual Basic 6.0
    Antworten: 2
    Letzter Beitrag: 03.12.06, 22:26
  4. c++ tastatur eingaben
    Von immnn im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 21.05.05, 01:38
  5. Tastatur sperren
    Von eierfeile im Forum Javascript & Ajax
    Antworten: 3
    Letzter Beitrag: 30.09.03, 14:59