
Ergebnis 1 bis 15 von 15
-
Bin neu hier
- 19.08.2011, 13:30
- #1
Hey Ihr,
bin am Entwickeln einer App für WP7. Ist nur so für mich zur Übung.
Ich programmiere in Visual Studio - VB
Jetzt hätte ich eine Frage.
Ich habe ein Textfeld, in das nur Zahlen und 1 Komma zugelassen werden soll. Wie kann ich das einstellen, dass hier keine Buchstaben reindürfen?
Mit InputScope habe ich bereits "TelephoneNumber" eingestellt, jedoch kann hier auch # oder * eingegeben werden.
Danke.
-
Bin hier zuhause
- 19.08.2011, 21:39
- #2
Falls es das gibt, solltest du evtl mal eine MaskedTextbox verwenden (kenne das Element nicht wirklich, habs nur in der Toolbox gesehen, als ich ne WinForm gemacht habe, daher weiß ich nicht, obs das auch in Silverlight gibt)
Ansonsten, falls möglich, verwende reguläre Ausdrücke, um die Eingabe zu prüfen (oder du bindest das Ereignis an nen Handler, das ausgelöst wird, wenn der Inhalt der Box geändert wird und schaust, welches Zeichen dazukam und lehnst unerwünschtes einfach ab)
-
entwickelt Apps
- 20.08.2011, 11:57
- #3
Kannst du mit dem TextChanged Event machen. Dann überprüfst du was das letzte eingegebene Zeichen ist, und wenn es dir nicht passt lässt du das letzte Element löschen. Am Schluss musst du jedoch den Index wieder an den Schluss stellen =)
-
Bin neu hier
- 24.08.2011, 17:18
- #4
Ich hab es jetzt so gemacht, wie Nemoc geschrieben hat.
Wenn er ein Zeichen eingibt, das nicht angenommen werden soll, dann wird es gelöscht.
Jedoch wenn er 2 Komma eingibt, wäre dies falsch. Komma habe ich zugelassen, jedoch sollte nur insgesamt 1 Komma erlaubt sein. Wie würde ich das realisieren?
-
Bin hier zuhause
- 24.08.2011, 19:55
- #5
dazu könnteste theoretisch die zeichen durchgehen, die im string sind (über string.Contains oder so)
oder du nutzt am ende eben reguläre ausdrücke, sofern die aufm wp7 vorhanden sind und nutzbar.
-
entwickelt Apps
- 24.08.2011, 21:06
- #6
Du kannst dir ja zum beispiel folgende Variabel bauen: bool bKomma = false;
nun kannst du mit einer foreach schleife durch den string navigieren. wenn ein Komma eingegeben wurde setzt du bKomma auf True.
wenn nun bKomma true ist und das zu überprüfende zeichen ein komma ist, wird es nicht akzeptiert (sprich gelöscht oder ein fehler ausgegeben oder was auch immer du da machen willst).
wen es keines ist wird die variable wieder auf false gesetzt.
Hoffe habe keinen Überlegungsfehler drin, aber sollte klappen =)
Gruss
Nemoc
-
- 26.08.2011, 08:43
- #7
Eine kleine Anmerkung: Versuch es doch mal mit dem KeyDown-Event statt dem TextChanged. Dort gibt es in den EventArgs ein Property namens Handled. Wenn Du das auf true setzt, wird der Tastendruck 'verschluckt' und Du musst nicht erst wieder löschen und den Cursor neu stellen.
Um zu checken, ob eine anständige Zahl eingegeben wurde, versuch mal double.TryParse(). Das Gute daran ist, dass Du bei erfolgreicher Prüfung direkt nen ordentlichen double hast.
Gruß
-
- 26.08.2011, 14:56
- #8
Um rauszubekommen ob bereits ein Komma geschrieben wurde kannst du folgendes machen:
Code:if TextBox1.Text.IndexOf(",") = -1 then 'Kein Komma drin else 'Komma schon drin end if
-
Robby Light Gast
Unter Mango hat sicher InputScope <InputScopeName NameValue="Number"/> geändert. Ich kann mir gut vorstellen, dass es genau das ist, was du brauchst.
-
- 25.09.2011, 12:29
- #10
Und vergiss bitte nicht, dass Eingaben auch aus der Zwischenablage erfolgen können. Diese werden bei den oben genannten Methoden nicht überprüft.
-
Gehöre zum Inventar
- 25.09.2011, 22:44
- #11
Löst TextChanged nicht aus wenn was gepastet wird? Muss ich mir anschauen, würde mich aber wundern.
Zum Überprüfen wäre evtl. eine Regular Expression ganz nett. Die nötigen Klassen dafür sollten unter System.Text.RegularExpressions zu finden sein.
Sowas wie \d+(,\d+)? würde da besagen, dass mindestens eine Ziffer kommen muss "\d+" kommt dann ein Komma "," muss mindestens eine Ziffer kommen, die Sachen mit Komma und Ziffer wäre jedoch optional.
-
- 26.09.2011, 08:48
- #12
Textchanged schon, aber nicht Keydown.
Die beste Möglichkeit ist mir RegularExpressions oder wie Robby Light sagte mit dem InputScope, wenn dies das gewünschte Ergebnis bringt
Bei den RegularExpressions aber noch bedenken, dass man manchmal ein Punkt anstatt eines Kommas verwendet in anderen Sprachen.
-
Gehöre zum Inventar
- 26.09.2011, 09:21
- #13
Ja, mit Punkt wärs dann \d+(\.\d+)?
Oder halt \d+((\.|,)\d+)? da sollte er dann Punkt oder Komma annehmen.
InputScope wäre wenn möglich natürlich das Optimale.
-
- 26.09.2011, 11:19
- #14
Ich hole das Dezimaltrennzeichen aus den Lokalitäts-Konstanten im System. Weiss jetzt grad nicht, wie die genau heissen.
Mit der kostenlosen PocketPC.ch App von meinem OMNIA7 aus geschrieben.
-
Gehöre zum Inventar
- 26.09.2011, 11:24
- #15
Ist zwar eigentlich Offtopic hier aber nachdem es leider ein Problem ist, dass immer mal wieder zu Problemen auch mit Apps im Marketplace führt hier nochmal:
double.Parse ist abhängig von der am System eingestellten Culture, damit wird der Punkt manchmal als Tausendertrennzeichen und manchmal als Dezimaltrennzeichen angesehen. Liest man jetzt Dinge aus einem Config-File denkt man da aber oft nicht dran und auf einmal geht es bei wem anders nicht.
Hab das Problem jetzt schon von einigen App-Entwicklern gehört - vor allem wenn sie auf nem englischsprachigen Emulator und Telefon testen. Microsoft fällt das nämlich bei der Zertifizierung dann nicht auf, weil die auch nur auf Englisch testen. (Hab sogar schon ein XNA-Beispiel von Microsoft gefunden, dass sich dann auf nem deutschen Windows nicht kompilieren ließ deshalb).
Also bei den ganzen Parse Methoden immer beachten, dass die in dieser Hinsicht "intelligent" sind.
Ähnliche Themen
-
Webcam zeigt nur Zahlen und Hyroglyphen
Von ruebsamen.thomas im Forum Samsung Galaxy SAntworten: 2Letzter Beitrag: 03.05.2011, 22:19 -
Nur bestimmte Internetseiten zulassen
Von Seno im Forum HTC Touch Pro 2Antworten: 0Letzter Beitrag: 26.09.2010, 21:56 -
2. SIM nur Datenverkehr zulassen?
Von Matia im Forum PlaudereckeAntworten: 0Letzter Beitrag: 04.02.2010, 15:50 -
keine Datenverbindung in Fremdnetzen (nur O2 und D1 für Datentrarife zulassen)
Von Unregistriert im Forum HTC Touch Pro 2Antworten: 4Letzter Beitrag: 09.10.2009, 19:19 -
eVB Textfeld -> nur nummern als inhalt
Von Peak im Forum ProgrammierenAntworten: 1Letzter Beitrag: 11.08.2004, 17:45
Pixel 10 Serie mit Problemen:...