Wie man eine textbox Anzeige nur Großbuchstaben?
Mit Windows Mobile 6.5 und C#
Den CharacterCasing Eigenschaft zu fehlen scheint WinMo 6.5 und ich beschließen, nur fangen die textchanged-Ereignis und setzen den text mit ToUpper.
Das funktioniert - aber auf jeden Tastendruck sendet er den cursor wieder auf den Anfang der Zeichenkette, nicht das Ende.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ritu, nur um einen Kommentar auf Ihre Antwort. Sie sollten im Hinterkopf behalten, dass dies möglicherweise verwirrend sein, für einen Benutzer, wenn der Benutzer positioniert den Cursor in die Mitte der Schnur um einige Bearbeiten und dann die Einfügemarke springt an das Ende der Zeichenfolge auf die Taste drücken.
Eine alternative könnte sein, den text zu ändern oberen Fall, wenn das edit-Steuerelement den Fokus verliert.
Ich weiß, das ist alt, aber ich hoffe, dies kann helfen, jemand anderes. Implementiert habe ich das KeyPress-Ereignis wie die folgenden.
Versuchen, hier eine solche Umsetzung.
Den soluttion der Einstellung der position von text an das Ende der Zeichenfolge scheint, wäre ein Aufwand, wenn Sie jemals brauchen werden, um den text zu Bearbeiten, die Sie bereits eingegeben haben.
Es ist schon eine Weile her, dachte ich über das C# - Ereignis-Modell, aber eine alternative könnte es sein, fangen die
KeyPress
Ereignis, und ändern Sie alle KleinbuchstabenKeyChar
Werte in Großbuchstaben vor der Weitergabe an den nächsten handler.Den Weg, den Sie nähert sich scheint falsch zu sein.
Es gibt so viele verschiedene Möglichkeiten zum einfügen von Daten in das Textfeld ein. Was ist mit copy & paste zum Beispiel?
Einfach durchführen .Text.ToUpper() beim Zugriff auf den Wert der Textbox
Speichern Sie die SelectionStart und SelectionLength, bevor Sie den text ändern. Die Methoden ToUpper sollten keine änderungen an der Länge, so können Sie einfach legen Sie die SelctionStart und SelectionLength zurück zu dem, was Sie gewesen war.
Außerdem würde ich erwarten, dass man ein geändertes Ereignis wieder, wenn Sie es ToUpper. Ich bin mir nicht sicher, ob Sie auch brauchen, um zu überprüfen, dass die Methoden ToUpper eigentlich nichts geändert, bevor Sie den Text wieder. Es kann sein, klug genug, um zu überprüfen, dass für Sie, wenn Sie ordnen Sie den text und die Vermeidung geben Sie eine unendliche rekursive Schleife von change-Ereignisse. Aber Sie wollen wahrscheinlich nicht zu ändern, die Auswahl in den event-handler aufrufen, für den Fall, dass Sie nicht machen eine weitere änderung, nur in der äußeren Anruf, wo Sie zuweisen, zurück zum Text. So könnten Sie auch guard Rekursion direkt.
Etwas wie:
arbeiten konnte. Ich habe nicht gearbeitet, in Windows-Mobile, aber ich würde denken, das würde funktionieren genauso wie die im Allgemeinen für .NET.
Habe ich es herausgefunden. Also auf das textChanged-Ereignis, Ersetze ich den eingegebenen text mit der ToUpper-version. Dann setze ich die SelectionStart-Eigenschaft auf den Text.Länge bewegen Sie den cursor an das Ende.