InputBox im Eigenbau

Wer von Access/VBA kommt, kann unter WPF die “MsgBox”-Anweisung leicht mit den Funktionen der Klasse “MessageBox” ersetzen. Allerdings sucht man vergeblich nach einem Pendant zur InputBox-Funktion, die ja ein einfaches Eingabefenster für die Eingabe eines Textes zur Verfügung stellt. Doch das ist kein Problem: Unter C#/WPF können Sie ja eigene Fenster erstellen. Warum dann nicht ein Fenster mit Titel, Text, Eingabefeld und OK/Abbrechen-Schaltflächen bauen und dieses bei Bedarf aufrufen

Vorgaben InputBox

Was soll eine InputBox überhaupt alles leisten Wir richten uns im Wesentlichen nach der InputBox von Access/VBA. Diese wird wie folgt aufgerufen, wenn man die hinteren Parameter etwa für die Position und für die Onlinehilfe weglässt:

Debug.Print InputBox("Geben Sie einen Text ein.", "Texteingabe", "[Hier eingeben]")

Die Debug.Print-Anweisung gibt den zurückgelieferten Wert im Direktfenster des VBA-Editors aus. Wie Sie sehen, verwenden wir hier drei Parameter:

  • Prompt: Text, der den Benutzer informiert, welche Eingabe von ihm erwartet wird
  • Title: Text für die Titelleiste des Fensters (optional)
  • Default: Text, der als Vorgabe im Textfeld angezeigt werden soll (optional)

Die InputBox selbst sieht dann wie in Bild 1 aus. Hier gibt es vier Steuerelemente: das Bezeichnungsfeld für den Text aus dem Parameter Prompt, das Textfeld zur Eingabe des gesuchten Wertes durch den Benutzer, das gegebenenfalls den Wert aus Default anzeigt, sowie die beiden Schaltflächen OK und Abbrechen.

InputBox unter VBA

Bild 1: InputBox unter VBA

Wenn der Benutzer die OK-Schaltfläche betätigt, soll die Funktion InputBox den aktuell im Textfeld befindlichen Text zurückliefern, bei Betätigung der Abbrechen-Schaltfläche soll eine leere Zeichenfolge zurückgegeben werden.

Wenn der Benutzer die Eingabetaste drückt, löst er die Funktion der OK-Schaltfläche aus, die Escape-Taste bewirkt selbiges für die Abbrechen-Schaltfläche.

InputBox als Fenster

Um ein Projekt mit einem Fenster auszustatten, das als InputBox dient, fügen Sie diesem einfach ein normales Objekt des Typs Fenster (WPF) hinzu. Nennen Sie das Fenster im Dialog Neues Element hinzufügen schlicht InputBox. Das Fenster statten Sie mit den Steuerelementen aus Bild 2 aus (das Bezeichnungsfeld haben wir markiert, damit man es überhaupt erkennt).

Fenster zur Anzeige einer InputBox im Entwurf

Bild 2: Fenster zur Anzeige einer InputBox im Entwurf

Wer von Access/VBA kommt, kann unter WPF die “MsgBox”-Anweisung leicht mit den Funktionen der Klasse “MessageBox” ersetzen. Allerdings sucht man vergeblich nach einem Pendant zur InputBox-Funktion, die ja ein einfaches Eingabefenster für die Eingabe eines Textes zur Verfügung stellt. Doch das ist kein Problem: Unter C#/WPF können Sie ja eigene Fenster erstellen. Warum dann nicht ein Fenster mit Titel, Text, Eingabefeld und OK/Abbrechen-Schaltflächen bauen und dieses bei Bedarf aufrufen

Vorgaben InputBox

Was soll eine InputBox überhaupt alles leisten Wir richten uns im Wesentlichen nach der InputBox von Access/VBA. Diese wird wie folgt aufgerufen, wenn man die hinteren Parameter etwa für die Position und für die Onlinehilfe weglässt:

Debug.Print InputBox("Geben Sie einen Text ein.", "Texteingabe", "[Hier eingeben]")

Die Debug.Print-Anweisung gibt den zurückgelieferten Wert im Direktfenster des VBA-Editors aus. Wie Sie sehen, verwenden wir hier drei Parameter:

  • Prompt: Text, der den Benutzer informiert, welche Eingabe von ihm erwartet wird
  • Title: Text für die Titelleiste des Fensters (optional)
  • Default: Text, der als Vorgabe im Textfeld angezeigt werden soll (optional)

Die InputBox selbst sieht dann wie in Bild 1 aus. Hier gibt es vier Steuerelemente: das Bezeichnungsfeld für den Text aus dem Parameter Prompt, das Textfeld zur Eingabe des gesuchten Wertes durch den Benutzer, das gegebenenfalls den Wert aus Default anzeigt, sowie die beiden Schaltflächen OK und Abbrechen.

InputBox unter VBA

Bild 1: InputBox unter VBA

Wenn der Benutzer die OK-Schaltfläche betätigt, soll die Funktion InputBox den aktuell im Textfeld befindlichen Text zurückliefern, bei Betätigung der Abbrechen-Schaltfläche soll eine leere Zeichenfolge zurückgegeben werden.

Wenn der Benutzer die Eingabetaste drückt, löst er die Funktion der OK-Schaltfläche aus, die Escape-Taste bewirkt selbiges für die Abbrechen-Schaltfläche.

InputBox als Fenster

Um ein Projekt mit einem Fenster auszustatten, das als InputBox dient, fügen Sie diesem einfach ein normales Objekt des Typs Fenster (WPF) hinzu. Nennen Sie das Fenster im Dialog Neues Element hinzufügen schlicht InputBox. Das Fenster statten Sie mit den Steuerelementen aus Bild 2 aus (das Bezeichnungsfeld haben wir markiert, damit man es überhaupt erkennt).

Fenster zur Anzeige einer InputBox im Entwurf

Bild 2: Fenster zur Anzeige einer InputBox im Entwurf

Access, SQL und Cloud Automation

Unser exklusives Angebot für Dich!

VB-Entwickler
12,50 € im Monat*

(Gilt für den Abschluss eines Jahres-Abonnements.)

Hier geht’s weiter →

Die ersten 4 Wochen kostenlos testen – voller Zugriff auf alle Artikel, vollständigen Code und Beispieldatenbanken. Kein Risiko: Wenn es nicht passt, kündigst Du einfach innerhalb der ersten vier Wochen.

PayPal VISA Mastercard SEPA
Kostenlos & unverbindlich

Oder hast Du eine konkrete Frage zu Deiner eigenen Access-Anwendung?

Vielleicht stellt Deine Anwendung Dich vor eine Herausforderung, zu der Du bisher keine Lösung findest. Schlechte Performance, kein ausreichender Zugriffsschutz, Du bist unsicher über Dein Datenmodell oder Dein Code liefert unerklärliche Fehler?

In unserem kostenlosen Access-Audit schaut sich André Minhorst persönlich gemeinsam mit Dir Deine Lösung per Zoom an – und zeigt Dir, wo Datenmodell, VBA-Code, Ergonomie und Sicherheit Optimierungspotenzial bieten.

Jetzt kostenloses Access-Audit anfordern →