Laden...

In Textbox nur Telefonnummer mit bestimmtem Format zulassen

Erstellt von TigerCrow vor 7 Jahren Letzter Beitrag vor 7 Jahren 2.571 Views
T
TigerCrow Themenstarter:in
86 Beiträge seit 2017
vor 7 Jahren
In Textbox nur Telefonnummer mit bestimmtem Format zulassen

Hallo

ich bin es schon wieder 🙁

ist es möglich bei der Eingabe in einer TextBox nur eine Telefonnummer zuzulassen? im Windows.Form

Habe schon vieles gelesen aber nix geht wirklich 🙁

hatte mir sowas vorgestellt:

TextBox1.Format("0000/00000000");

aber sowas geht ja wohl in c# nicht! oder irre ich mich?

Gibt es da eventuell eine möglichkeit?

Ihr wisst ich bin noch Anfänger.

Lieben Gruß
TigerCrow

771 Beiträge seit 2009
vor 7 Jahren

Hi,

dafür gibt es die MaskedTextBox.

3.003 Beiträge seit 2006
vor 7 Jahren

C# ist Turing-vollständig. Das heisst, es geht prinzipiell alles (erst recht so simple Anforderungen).

Anhand der mageren Informationen tippe ich mal, dass MaskedTextbox deine Wünsche schon erfüllt.

LaTino

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)

T
TigerCrow Themenstarter:in
86 Beiträge seit 2017
vor 7 Jahren

Entschuldigung .. ich bin blöd .. gibt doch masktextbox ...

Sorry

Thema kann gelöscht werden

2.207 Beiträge seit 2011
vor 7 Jahren

Thema kann gelöscht werden

Wieso? Forum ist geben und nehmen. Es gibt ausser dir sicher noch jemanden, der das gleiche Problem hat. Der ist froh, wenn er den Thread hier findet 😉

Gruss

Coffeebean

T
TigerCrow Themenstarter:in
86 Beiträge seit 2017
vor 7 Jahren

Stimmt .. hast Recht Coffeebean

aber da habe ich doch noch eine Frage zu ... sorry

kann ich da irgendwie die min / maxlänge angeben ?

Lieben Gruß
TigerCrow

2.207 Beiträge seit 2011
vor 7 Jahren

Hallo TigerCrow,

häng dich an das TextChanged-Event und prüfe dann. Das wäre mein erster Gedanke.

Gruss

Coffeebean

C
2.121 Beiträge seit 2010
vor 7 Jahren

Ich würde auf sowas komplett verzichten. Lass den Benutzer doch xyz123?!? eingeben und erklär ihm dann in einer Fehlermeldung dass es falsch ist und warum.
Woher soll der Nutzer wissen warum eine Taste plötzlich nicht reagiert? Um das selbst rauszufinden braucht er länger als wenn du ihm einen gezielten Hinweis gibst.

Mit Prüfungen wie max. Länge wette ich dass du irgendwann ein Problem kriegst, weil eine Nummer eben doch länger ist als du erlaubst.

709 Beiträge seit 2008
vor 7 Jahren

Gerade bei Telefonnummern gibt es viele unterschiedliche Schreibweisen.
Du könntest auch eine Bibliothek wie z.B. libphonenumber nutzen um zu gucken, ob die Eingabe eine gültige Telefonnummer sein kann.

3.825 Beiträge seit 2006
vor 7 Jahren

Ich erlaube jede Eingabe in das Feld Telefonnummer.

Braucht dann allerdings etwas mehr Aufwand bei der Wahl einer Telefonnummer oder bei der Rückwärtssuche : Suche eines Namens anhand einer Telefonnummer.

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

C
2.121 Beiträge seit 2010
vor 7 Jahren

Du kannst ja schon den Nutzer darauf hinweisen dass er falsche Zeichen eingibt, ein - statt / als Trennzeichen und so weiter. Was ich aber nicht tun würde ist bestimmte Tasten sozusagen sperren, das hat einen seltsamen Effekt finde ich.

Wenn es um Suche geht, als Tip könntest du sowas machen.

  1. dürfen nur bestimmte Zeichen enthalten sein. + (für Landesvorwahl), Ziffern, Leerzeichen (weil jemand das vielleicht so eingeben mag) und / als Trennzeichen. Wenn was anderes vorkommt, Meldung und der Benutzer soll das korrigieren.
  2. Die Landesvorwahl musst du vereinheitlichen. Wenn jemand keine eingibt, muss die erste Ziffer eine Null sein. Die streichst du und setzt für Deutschland +49 davor. Den Standardwert musst du dir irgendwo her holen. Danach ein Leerzeichen.
  3. Dann die restliche Nummer entweder mit / zwischen Vorwahl (ohne Null am Anfang) und Nummer, oder ohne /. Leerzeichen alle rausnehmen.

Zum Suchen auch wieder die Nummer so aufbereiten, dann solltest du eine Nummer immer finden.
Wenn du es dem Nutzer ganz komfortabel machen willst, speichere das was er eingibt damit er es immer so sieht wie er es gewohnt ist. Und speichere zusätzlich die aufbereitete Nummer unsichtbar für den Nutzer, für die Suche.

D
985 Beiträge seit 2014
vor 7 Jahren

Sagen wir mal so, eine EingabeBox, die die Telefonnummer bei der Eingabe schon so formatiert, wie die korrekte Darstellung nach Landesvorgaben ist, dass ist ein großes Kino => sehr großer Aufwand.

Um Frust zu vermeiden gibt es hier nur 2 Wege:1.Komplett und vollständig 1.freie Eingabe ohne Features

Komplett und vollständig kann man sich z.B. auf einem Smartphone (z.B. iOS) anschauen wie das dann auszusehen hat. Wenn man auf so eine Umsetzung keine Lust hat (was absolut nachvollziehbar ist), dann nimmt man eine simple TextBox und prüft einfach ob die Eingabe gültig ist.

T
TigerCrow Themenstarter:in
86 Beiträge seit 2017
vor 7 Jahren

Danke für eure Infos 🙂

Habe das jetzt mit einem Regulären Ausdruck gemacht und die min länge noch abgefangen, ist ja echt kompliziert 🙁 in C#

16.834 Beiträge seit 2008
vor 7 Jahren

Erinner Dich aber an die Worte, dass Du vermutlich nicht alle Fälle abgefangen hast.
Daher ist das auch ein typisches Feld, bei dem Du eine Validierung durchführst nach dem Motto "sind Sie sich sicher, dies dennoch zu speichern?" statt das Speichern zu blockieren.
Du wirst niemals alle Fälle abdecken. Nie.

Spätestens bei Eingaben mit Telefonanlagen hast Du eine Länge, die nicht mehr den Standards entspricht.