comment formater windows forms zone de texte avec séparateur de milliers de décimales et de separtor pour les entrées Numériques
Je suis novice avec les Winforms et essayer de faire quelque chose. Je suis à l'aide de C#.
Je suis l'aide de windows forms et j'ai mis 8 zone de texte sur mon formulaire, tous sont numériques avec la valeur décimale.
J'aime pour atteindre les résultats ci-dessous. mon séparateur décimal est une virgule et le séparateur de milliers est un point.
J'ai jamais vu quelque chose comme ##.###,## ou que ce soit, mais ne me souviens pas.... Quelqu'un peut-conseils sur la façon de réaliser les ci-dessous approche?
Donc l'idée c'est que quand je tape 1234 et laisser le focus dans la zone de texte, il doit format et quand j'arrive dans la zone de texte de retour à nouveau le séparateur de milliers, ne devrait pas seulement le séparateur décimal.
Je pense que j'ai à l'utilisation de certains événements comme LostFocus?
d'entrée result
1234 1.234,00
12.34 12,34
12,34 12,34
1234567 1.234.567,00
12,34 12,34
12345,67 12.345,67
string
s ou des valeurs numériques) par le biais de votre propre méthode de formatage. La raison pour cela est que vous avez besoin de personnalisé le comportement des modifications basées sur les valeurs d'entrée dans une façon non standard.OriginalL'auteur ethem | 2013-03-18
Vous devez vous connecter pour publier un commentaire.
Sur votre événement LostFocus dans la zone de texte, utilisation:
Assurez-vous que le texte est double /entier avant d'appliquer la logique ci-dessus, ou il va jeter l'exception. Cette solution est plutôt dure, dure.
Si vous voulez le format spécifique de la culture plutôt que sur votre ordinateur actuel de la culture, alors
L'exemple ci-dessus est pour la monnaie Indonésienne format, qui séparateur de milliers utilisez le point (".") plutôt que la virgule (",").
Oh désolé, semble, comme je l'écris dans le mauvais format.
avec la ne format: 1145 devient 1,145 et 11.45 devient 11 et 50 reste 50
Oh j'ai mis à jour ma réponse encore une fois. Ne voyez pas votre exigence de fuite zéro
exact ce que j'ai besoin juste 1 chose 1) dans votre code de séparateur de milliers est une virgule, il devrait être un point ET virgule est le point il faut une virgule... votre code: 1,145.00 il convient de 1.145,00
OriginalL'auteur Fendy
Vous pourriez peut-être utiliser le MaskedTextBox
http://msdn.microsoft.com/en-us/library/system.windows.forms.maskedtextbox.aspx
Vous pouvez ajuster le masque sur une longueur de perdre le focus. Espérons que cela est utile.
Il pourrait fonctionner si vous retirez le masque sur Enter, puis sur Quitter, vérifiez la longueur et appliquer un Masque.
OriginalL'auteur stevepkr84