2010-03-29 7 views
0

J'ai mon propre champ de saisie qui hérite System.Windows.Forms.TextBox
Je tente d'afficher des textes comme 5000000 formaté ==> 5.000.000 mais le problème est que le contrôle. Le texte devrait renvoyer 5000000 mais il devrait afficher 5.000.000.comment afficher du texte formaté, mais que le texte actuel

Je sais que c'est WTF, mais j'en ai vraiment besoin et je ne pourrais pas beaucoup Google parce que ma langue maternelle n'est pas l'anglais (et n'importe qui peut l'obtenir de ma grammaire et je suis désolé).

Répondre

1

Lorsque vous voulez récupérer, convertir la chaîne affichée à un nombre entier en utilisant int.Parse et CultureInfo.CurrentCulture puis le convertir en une chaîne en utilisant ToString et CultureInfo.InvariantCulture.

+0

Je ne l'ai pas essayé, c'est rapide? – Behrooz

+1

Moi non plus, je ne l'ai pas essayé, mais sinon, comment sauriez-vous que les deux valeurs sont équivalentes? Il doit y avoir une conversion quelque part. –

0

utilisation propriété Tag que chaque contrôle a

+0

@Andrey: malheureusement, le texte n'est pas en lecture seule, et l'utilisateur doit le remplir. – Behrooz

+0

Je vais essayer de le faire si d'autres personnes n'envoient pas de meilleures réponses. – Behrooz

0

Vous pouvez conserver la valeur origianl dans la propriété Tag (objet).

1

Vous pouvez utiliser la propriété de balise Andrey suggested et mettre à jour la valeur de la propriété de balise dans l'événement TextChange.

+0

+1 pour le mot clé "suggéré". – Behrooz

1

(Note: n'ont pas eu le temps de regarder les noms de bonne méthode, mais nous espérons que je suis assez proche de donner un sens ...)

Créer un contrôle personnalisé qui dérive de TextBox.

Ajoutez des gestionnaires au contrôle pour les événements de mise au point (ou mieux, remplacez les méthodes pour OnFocus/OnBlur). Lorsque le contrôle perd le focus, stockez le texte actuel dans une variable privée (par exemple, OriginalText) et mettez à jour le texte réel vers votre version formatée. Lorsque le contrôle obtient focus, rétablir le texte d'origine.

+0

+1 pour OnBlur (je ne savais pas à ce sujet), mais j'ai déjà fait autre chose auparavant mais le problème était "comment le montrer?". – Behrooz

Questions connexes