Textbox nur Zahlen , Nur ein Element aktivieren

  • VB.NET

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von Mad Andy.

    Textbox nur Zahlen , Nur ein Element aktivieren

    Hallo ich habe 2 Fragen:

    1. Kann man irgentwie bewirken, dass man in eine Textbox nur Zahlen eingeben kann. Entweder als Einstellung in den Eigenschaften oder durch Code.

    2. Ich habe auf einer Form mehrere Checkboxen. Es wäre wichtig, dass man nur eine checkbox auf einmal aktivieren kann. Ohne zick hundert if abfragen zu schreiben, in allen möglichen Kombinationen mit den diversen Checkboxen enthalten sind, um dies zu verhindern.

    danke.
    hallo philipp,

    zu 1. das geht muss aber noch nachsehen wie genau

    zu 2. wenn du immer nur eine checkbox haben willst nimm am besten die radiobutton
    die sind für sowas gemacht

    nachtrag:

    zu 1. nur zahlen zulassen

    VB.NET-Quellcode

    1. Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
    2. If Not IsNumeric(e.KeyChar) Then e.Handled = True
    3. End Sub



    gruss

    mikeb69

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „mikeb69“ ()

    Hi,

    @mikeb69
    Deine Lösung zu 1. ist schon sehr schön (und trifft auch genau die Fragestellung) aber:

    - man sollte zumindest noch die Backspace Taste (ich glaube KeyChar = 8) zulassen. Mensch vertippt sich ja doch mal. (Ich bin mir grad nicht sicher inwieweit die Cursortasten links/rechts und die Entf Taste behandelt werden, Unter VB6 war es auf jeden Fall notwendig die Backspace Taste zuzulassen (wenn man sie denn benutzen möchte).)

    - das nächste Problem ergibt sich dann bei Kommazahlen oder bei negativen Zahlen. Also müssen auch das Minuszeichen und das Komma zugelassen werden. Diese beiden allerdings nur einmal!! (Es gibt schließlich keine Zahl mit mehreren Kommata ;) )


    bye ...

    LaMa5.
    Die Wissenschaft wird nie ein besseres Kommunikationssystem in den Büros erfinden können als die Kaffeepause.
    (Autor: Earl Wilson, amerik. Schriftsteller)

    https://www.serviceteam-md.de
    hallo lama5,

    sicher hast du recht, wenn gewünscht kann ich das auch umbauen.
    dazu muss ich aber nochmal suchen ....

    vielleicht kann philipp uns sagen, wie er es exact haben will.

    schönen abend noch

    mikeb69
    Hallo,

    erstmal vielen Dank für eure Hilfe.

    zu 1: Ich habe eine Textbox in die Zahlen eingegeben werden sollen. Es können auch Kommazahlen sein. Leider hat mich eure Frage nach dem minuszeichen in tiefste Verzweifelung gestürtzt. Also es müssen eingegeben werden können: ganze Zahlen, komma Zahlen, negative Zahlen und positive Zahlen. Wobei eine Abfrage auftauchen soll (wenn negative Zahlen eingegeben werden) ob diese wirklich so übernommen werden soll. UNd natürlich muss auch zugelassen sein, dass man die Eingegebene zahl korriegieren kann.

    Der Variablentyp Float kann doch Kommazahlen aufnehmen, oder? Wie groß ist der Wertebereich dieses Typs?

    Zu 2: Also muss ich alle Checkboxen durch Radiobutton austauschen. Dann hat sich dieses Problem von geklärt???

    ICh habe in eingen Zeilen meines Codes z.B. Abfragen drin wie if checkbox2.checked = false ?? geht das auch so mit Radioboxen also ich radiobox2.checked = false????

    Vielen danke für eure Hilfe!!!
    Hier hast du die Code !!!
    Schmeis raus was du nicht brauchst !!

    Diese Code schreibst du in Modul rein und in Form rufst du die einzelne Functionen ab !




    Module Module1

    Public strKleinBuchstabe(31) As String
    Public intKBuchZähler As Integer

    Public strGroseBuchstabe(28) As String
    Public intGBuchZähler As Integer

    Public intZahl(9) As Integer
    Public intZahlZähler As Integer

    Public strSonderZeichen(34) As String
    Public intSonderZeichenZähler As Integer



    Public Function KleineBuchstabe(ByVal strZeichen0 As String, ByVal strMsgbox0 As String) As Boolean

    Dim blnKleinBuchVergleichen As Boolean


    strKleinBuchstabe(0) = "q"
    strKleinBuchstabe(1) = "w"
    strKleinBuchstabe(2) = "e"
    strKleinBuchstabe(3) = "r"
    strKleinBuchstabe(4) = "t"
    strKleinBuchstabe(5) = "z"
    strKleinBuchstabe(6) = "u"
    strKleinBuchstabe(7) = "i"
    strKleinBuchstabe(8) = "o"
    strKleinBuchstabe(9) = "p"
    strKleinBuchstabe(10) = "ü"
    strKleinBuchstabe(11) = "a"
    strKleinBuchstabe(12) = "s"
    strKleinBuchstabe(13) = "d"
    strKleinBuchstabe(14) = "f"
    strKleinBuchstabe(15) = "g"
    strKleinBuchstabe(16) = "h"
    strKleinBuchstabe(17) = "j"
    strKleinBuchstabe(18) = "k"
    strKleinBuchstabe(19) = "l"
    strKleinBuchstabe(20) = "ö"
    strKleinBuchstabe(21) = "ä"
    strKleinBuchstabe(22) = "y"
    strKleinBuchstabe(23) = "x"
    strKleinBuchstabe(24) = "c"
    strKleinBuchstabe(25) = "v"
    strKleinBuchstabe(26) = "b"
    strKleinBuchstabe(27) = "n"
    strKleinBuchstabe(28) = "m"
    strKleinBuchstabe(29) = "ß"
    strKleinBuchstabe(30) = "@"
    strKleinBuchstabe(31) = "µ"



    For intKBuchZähler = 0 To 31

    blnKleinBuchVergleichen = strKleinBuchstabe(intKBuchZähler) Like strZeichen0

    If blnKleinBuchVergleichen = True Then

    MsgBox(strMsgbox0, MsgBoxStyle.Information, "INFO")

    KleineBuchstabe = blnKleinBuchVergleichen

    Exit For

    End If

    Next

    End Function

    Public Function GroseBuchstabe(ByVal strZeichen1 As String, ByVal strMsgBox1 As String) As Boolean

    Dim blnFrossBuchVergleichen As Boolean

    strGroseBuchstabe(0) = "Q"
    strGroseBuchstabe(1) = "W"
    strGroseBuchstabe(2) = "E"
    strGroseBuchstabe(3) = "R"
    strGroseBuchstabe(4) = "T"
    strGroseBuchstabe(5) = "Z"
    strGroseBuchstabe(6) = "U"
    strGroseBuchstabe(7) = "I"
    strGroseBuchstabe(8) = "O"
    strGroseBuchstabe(9) = "P"
    strGroseBuchstabe(10) = "Ü"
    strGroseBuchstabe(11) = "A"
    strGroseBuchstabe(12) = "S"
    strGroseBuchstabe(13) = "D"
    strGroseBuchstabe(14) = "F"
    strGroseBuchstabe(15) = "G"
    strGroseBuchstabe(16) = "H"
    strGroseBuchstabe(17) = "J"
    strGroseBuchstabe(18) = "K"
    strGroseBuchstabe(19) = "L"
    strGroseBuchstabe(20) = "Ö"
    strGroseBuchstabe(21) = "Ä"
    strGroseBuchstabe(22) = "Y"
    strGroseBuchstabe(23) = "X"
    strGroseBuchstabe(24) = "C"
    strGroseBuchstabe(25) = "V"
    strGroseBuchstabe(26) = "B"
    strGroseBuchstabe(27) = "N"
    strGroseBuchstabe(28) = "M"

    For intGBuchZähler = 0 To 28

    blnFrossBuchVergleichen = strGroseBuchstabe(intGBuchZähler) Like strZeichen1


    If blnFrossBuchVergleichen = True Then

    MsgBox(strMsgBox1, MsgBoxStyle.Information, "INFO")

    GroseBuchstabe = blnFrossBuchVergleichen

    Exit For

    End If

    Next

    End Function
    Public Function Zahlen(ByVal strZeichen2 As String, ByVal strMsgBox2 As String) As Boolean

    Dim blnZahlVergleichen As Boolean

    intZahl(0) = "0"
    intZahl(1) = "1"
    intZahl(2) = "2"
    intZahl(3) = "3"
    intZahl(4) = "4"
    intZahl(5) = "5"
    intZahl(6) = "6"
    intZahl(7) = "7"
    intZahl(8) = "8"
    intZahl(9) = "9"

    For intZahlZähler = 0 To 9

    blnZahlVergleichen = intZahl(intZahlZähler) Like strZeichen2

    If blnZahlVergleichen = True Then

    MsgBox(strMsgBox2, MsgBoxStyle.Information, "INFO")

    Zahlen = blnZahlVergleichen

    Exit For

    End If

    Next

    End Function

    Public Function SonderZeichen(ByVal strZeichen3 As String, ByVal strMsgBox3 As String) As Boolean

    Dim blnSonderZeichenVergleichen As Boolean

    strSonderZeichen(0) = "°"
    strSonderZeichen(1) = "^"
    strSonderZeichen(2) = "!"
    strSonderZeichen(3) = """"
    strSonderZeichen(4) = "²"
    strSonderZeichen(5) = "§"
    strSonderZeichen(6) = "³"
    strSonderZeichen(7) = "$"
    strSonderZeichen(8) = "$"
    strSonderZeichen(9) = "%"
    strSonderZeichen(10) = "&"
    strSonderZeichen(11) = "/"
    strSonderZeichen(12) = "{"
    strSonderZeichen(13) = "("
    strSonderZeichen(14) = "["
    strSonderZeichen(15) = ")"
    strSonderZeichen(16) = "]"
    strSonderZeichen(17) = "="
    strSonderZeichen(18) = "}"
    strSonderZeichen(20) = "?"
    strSonderZeichen(21) = "\"
    strSonderZeichen(22) = "´"
    strSonderZeichen(23) = "+"
    strSonderZeichen(24) = "*"
    strSonderZeichen(25) = "~"
    strSonderZeichen(26) = "#"
    strSonderZeichen(27) = "'"
    strSonderZeichen(28) = ">"
    strSonderZeichen(30) = "<"
    strSonderZeichen(31) = ":"
    strSonderZeichen(32) = "_"
    strSonderZeichen(33) = ";"
    strSonderZeichen(34) = "`"


    For intSonderZeichenZähler = 0 To 34

    blnSonderZeichenVergleichen = strSonderZeichen(intSonderZeichenZähler) Like strZeichen3

    If blnSonderZeichenVergleichen = True Then

    MsgBox(strMsgBox3, MsgBoxStyle.Information, "INFO")

    SonderZeichen = blnSonderZeichenVergleichen

    Exit For

    End If

    Next

    End Function

    Public Function Strich(ByVal strZeichen4 As String, ByVal strMsgBox4 As String) As Boolean

    Dim strZeichen5 As String
    Dim blnStrichVergleichen As Boolean

    strZeichen5 = "-"

    blnStrichVergleichen = strZeichen5 Like strZeichen4

    If blnStrichVergleichen = True Then

    MsgBox(strMsgBox4, MsgBoxStyle.Information, "INFO")

    Strich = blnStrichVergleichen

    End If

    End Function

    Public Function Komma(ByVal strZeichen6 As String, ByVal strMsgBox6 As String) As Boolean

    Dim strZeichen7 As String
    Dim blnKommaVergleichen As Boolean

    strZeichen7 = ","

    blnKommaVergleichen = strZeichen7 Like strZeichen6

    If blnKommaVergleichen = True Then

    MsgBox(strMsgBox6, MsgBoxStyle.Information, "INFO")

    Komma = blnKommaVergleichen

    End If


    End Function

    Public Function Punkt(ByVal strZeichen8 As String, ByVal strMsgBox8 As String) As Boolean

    Dim blnPunktVergleichen As Boolean
    Dim strZeichen9 = "."

    blnPunktVergleichen = strZeichen9 Like strZeichen8

    If blnPunktVergleichen = True Then

    MsgBox(strMsgBox8, MsgBoxStyle.Information, "INFO")

    Punkt = blnPunktVergleichen

    End If
    End Function

    End Module



    Mfg Alex2000 ;)

    Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von „Alex2000“ ()

    hallo gemeinde,
    hallo lama5,

    nun - nach einigem kramen in alten projekten, kann ich folgendes anbieten :rolleyes:

    VB.NET-Quellcode

    1. Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
    2. If Not (Char.IsDigit(e.KeyChar) Or Char.IsSeparator(e.KeyChar) Or Char.IsControl(e.KeyChar) _
    3. Or Char.IsPunctuation(e.KeyChar)) Then e.Handled = True
    4. End Sub
    hmmm.....

    sieht man meine Beiträge nicht? :D

    oder warum werde ich in letzter Zeit erfolgreich ignoriert?

    VB.NET-Quellcode

    1. Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
    2. Select Case Asc(e.KeyChar)
    3. Case 48 To 57, 8, 32
    4. ' Zahlen, Backspace und Space zulassen
    5. Case Else
    6. ' alle anderen Eingaben unterdrücken
    7. e.Handled = True
    8. End Select
    9. End Sub


    aus Tipps und Tricks für VB.NET X(
    Hi
    Da hab ich auch meinen Senf dazuzugeben ;)

    Du solltest da am Besten auch noch Entf einbinden(ist bei Photoshop z.B. auch nicht drin ;)). Statt den Ascii-Werten kannst du auch die von Microsoft vorgefertigte Enumeration Keys verwenden.

    VB.NET-Quellcode

    1. 'statt
    2. 8
    3. 'einfach
    4. Keys.Backspace
    5. 'verwenden


    Gruß
    ~blaze~