VB.NET InputBox Beispiel
Inhaltsverzeichnis
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 aus– und 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
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
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
Ä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