VB.NET InputBox Beispiel

VB.NET InputBox Beispiel
VB.NET InputBox Beispiel

VB.NET InputBox Beispiel

In meinem VB.NET InputBox Beispiel geht es um eine einfache und rudimentäre Variante, die simple Eingabe eines Nutzers entgegenzunehmen.

Falls Du hingegen komplexere Eingaben, wie z. B. die Eingaben einer Adresse via Dialog-Fenster beabsichtigst, ist vermutlich dieses Tutorial hier für Dich besser geeignet.

Da wir in diesem Beispiel in erster Linie String-Eingaben verarbeiten aber natürlich auch in Zahlen umwandeln können – bieten sich unter anderem ggf. noch folgende Beiträge an: String zerlegen, bzw. splitten, erstes Zeichen aus String entfernen, letztes Zeichen aus String entfernen.

++ Update 19.01.2022 ++

Ich habe mich beim Aufräumen der Homepage heute dazu entschieden, den Beitrag noch einmal anzupassen.

Neben des wichtigen Fazits bin ich auch noch auf einige einzelne Punkte genauer eingegangen.

Dazu habe ich passende Passagen hinzugefügt und den Download-Link aktualisiert!

Szenario – InputBox

Jeder kommt hier und da irgendwann mal an den Punkt beim Programmieren, wo man einem Nutzer ganz einfach eine Textbox zeigen will und an dessen Text-Eingabe kommen möchte.

Nun stellt sich die Frage: „Och man, muss ich dafür jetzt ein komplett eigenes Fenster erstellen? Geht das nicht einfacher und vor allem schneller!?“.

Zum Glück muss man – jedenfalls in simplen Fällen – für die Eingabe von z. B. Text, einer Zahl, oder einem Datum keine eigene Maske mit Bestätigungs-, bzw. Abbruch-Funktionalität erstellen.

Dafür kommt uns die InputBox-Funktion vom .NET Framework zu Hilfe, allerdings sieht Diese nicht so prickelnd schön aus.

VB.NET Inputbox Code-Beispiele

Form1-Klasse

Die gängige Hauptklasse unserer Beispiele, insofern keine weitere Dialoge oder Formulare notwendig sind.

Methoden

Form1_Load

In der Load-Methode der Form, bzw. genauer genommen in dessen Load-Ereignishandler, rufen wir 3 verschiedene Beispiele der InputBox für unser VB.NET InputBox Beispiel auf.

Natürlich kannst Du Beispiele nach Belieben ausund ein-kommentieren, um einen besseren Blick über das ausgewählte Beispiel zu erhalten.

Das war letztendlich auch die Absicht hinter den einzelnen Methoden: Beschreibung und die saubere Trennung der Beispiele.

DoSimpleGreeting
VB.NET Inputbox Beispiel für Begrüßung
VB.NET Inputbox Beispiel für Begrüßung

Diese Methode dient wohl dem einfachsten, bzw. gängigsten Beispiel, also der simplen Abfrage eines Strings.

Wir fragen in diesem Fall den Namen des Nutzers ab und prüfen ob dieser leer ist.

Wenn der Name leer ist, also falls der Dialog abgebrochen wurde, oder der Dialog leer bestätigt wurde, dann wird eine Meldung ausgegeben und die Sub mit „Early-Return“ verlassen.

Haben wir einen String vorliegen, nehmen wir an, dass dies der Name des Nutzers ist und geben eine entsprechende Meldung aus.

Private Sub DoSimpleGreeting()
    Dim content = "We would like to be more personal, so please provide your name so we can talk to you better :)!"
    Dim title = "Please enter your name"
    Dim input = InputBox(content, title)
    Dim cancelled = String.IsNullOrEmpty(input)
    If cancelled Then
        MessageBox.Show("Ok, so you don't want to tell us your name.. :(")
        Return
    End If
    MessageBox.Show($"Nice to meet you, {input}")
End Sub
WorkWithInteger
VB.NET Inputbox Beispiel für Zahlen wie Alter
VB.NET Inputbox Beispiel für Zahlen wie Alter

Dieses Beispiel sieht ähnlich aus, nur geht es hier um die Eingabe eines Alters.

Ein weiterer Unterschied ist unter anderem, dass wir weiter unten den String versuchen in einen Integer (also eine Ganzzahl) umwandeln.

Falls dies nicht erfolgreich ist, verfahren wir auch hier ähnlich, geben eine Meldung an den Nutzer und verlassen die Sub mit „Early-Return“.

Wenn alles geklappt hat, geben wir letztendlich eine Meldung mit dem Alter aus.

Private Sub WorkWithInteger()
    Dim content = "Please enter your age!"
    Dim title = "Your age?"
    Dim input = InputBox(content, title)
    Dim cancelled = String.IsNullOrEmpty(input)
    If cancelled Then
        MessageBox.Show("We need to know your age to verify you're old enough :/. ")
        Return
    End If
    Dim age = 0
    If Not Integer.TryParse(input, age) Then
        MessageBox.Show($"Hmm, seems like you entered an invalid age")
        Return
    End If
    MessageBox.Show($"Oh, so you're {age} years old")
End Sub
WorkWithDate
VB.NET Inputbox Beispiel für ein Datum
VB.NET Inputbox Beispiel für ein Datum

Ähnelt sehr stark dem vorherigen Beispiel, nur das wir hier ein Datum verarbeiten und später formatiert im String anzeigen.

Hierbei muss man natürlich auf die Eingabe achten, also das man ein „richtiges“ Datum angibt.

Sonst kann es natürlich bei falscher Eingabe zu einem Verarbeitungsfehler von der „DateTime.TryParse“-Funktion kommen.

Falls man ein falsches Datum eingibt, geben wir auch dies als Fehler mit einer kleinen Nachricht aus.

Private Sub WorkWithDate()
    Dim content = "Please enter your date of birth!"
    Dim title = "Your birthday?"
    Dim input = InputBox(content, title)
    Dim cancelled = String.IsNullOrEmpty(input)
    If cancelled Then
        MessageBox.Show("We need to know your birthday to verify you're old enough :/. ")
        Return
    End If
    Dim birthday = DateTime.MinValue
    If Not DateTime.TryParse(input, birthday) Then
        MessageBox.Show($"Hmm, seems like you entered an invalid date")
        Return
    End If
    MessageBox.Show($"Oh, so you're born on {birthday:dd.MM.yyyy}")
End Sub

Fazit

Die Inputbox ist und bleibt wohl eine der einfachsten Möglichkeiten simple Benutzereingaben entgegenzunehmen.

Das kleine Eingabefeld ist allerdings nur für die Eingabe wirklich rudimentärer Daten geeignet und stößt bei mehr auf Granit.

Eine komplette Adresse, also eine Straße, PLZ, usw., muss dann wohl doch mit einem größeren Formular erfasst werden.

Kompletter Code – VB.NET InputBox Beispiel

Für die Schnellen habe ich hier im Sinne von TL;DR (Too Long Didn’t Read) den gesamten Code in einem Stück zusammengeschrieben.

Public Class Form1

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        DoSimpleGreeting()
        WorkWithInteger()
        WorkWithDate()
    End Sub

    Private Sub DoSimpleGreeting()
        Dim content = "We would like to be more personal, so please provide your name so we can talk to you better :)!"
        Dim title = "Please enter your name"
        Dim input = InputBox(content, title)
        Dim cancelled = String.IsNullOrEmpty(input)
        If cancelled Then
            MessageBox.Show("Ok, so you don't want to tell us your name.. :(")
            Return
        End If
        MessageBox.Show($"Nice to meet you, {input}")
    End Sub

    Private Sub WorkWithInteger()
        Dim content = "Please enter your age!"
        Dim title = "Your age?"
        Dim input = InputBox(content, title)
        Dim cancelled = String.IsNullOrEmpty(input)
        If cancelled Then
            MessageBox.Show("We need to know your age to verify you're old enough :/. ")
            Return
        End If
        Dim age = 0
        If Not Integer.TryParse(input, age) Then
            MessageBox.Show($"Hmm, seems like you entered an invalid age")
            Return
        End If
        MessageBox.Show($"Oh, so you're {age} years old")
    End Sub

    Private Sub WorkWithDate()
        Dim content = "Please enter your date of birth!"
        Dim title = "Your birthday?"
        Dim input = InputBox(content, title)
        Dim cancelled = String.IsNullOrEmpty(input)
        If cancelled Then
            MessageBox.Show("We need to know your birthday to verify you're old enough :/. ")
            Return
        End If
        Dim birthday = DateTime.MinValue
        If Not DateTime.TryParse(input, birthday) Then
            MessageBox.Show($"Hmm, seems like you entered an invalid date")
            Return
        End If
        MessageBox.Show($"Oh, so you're born on {birthday:dd.MM.yyyy}")
    End Sub

End Class

Downloads

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert