J'ai besoin d'une zone de texte qui:
(1) n'accepte que des chiffres en tant que caractères. P>
(2) continue automatiquement à formater les valeurs numériques avec les Types d'utilisateur. P >
Par exemple, P>
1 becomes 1.00 10 becomes 10.00 100 becomes 100.00 1000 becomes 1,000.00 10000 becomes 10,000.00 100000 becomes 1,00,000.00
4 Réponses :
Avez-vous essayé de regarder une zone de texte masquée? p>
http: / /msdn.microsoft.com/en-us/library/system.windows.forms.maskedtextbox(v=vs.80).aspx P>
Formatage d'un numéro tandis que em> l'utilisateur saisit très mal les œuvres générales. Vous devez utiliser une carte masquée pour cela. Beaucoup de code sur Internet qui indique comment filtrer la clé de frappe afin que seuls les chiffres puissent être entrés. La majeure partie de celle-ci est trivialement vaincue en utilisant la commande Coller. La manière Saine est de traiter l'utilisateur capable de compétences de base comme taper un numéro et lui rappelle doucement qu'elle s'est faite. L'événement de validation est fabriqué pour cela. Qui est également le moment idéal pour formater le nombre. Ajoutez une nouvelle classe à votre projet et collez ce code: p> compile. Dressez la nouvelle commande de numéro de numéro de numéro de la boîte à outils sur votre formulaire. Déposez également une erreur d'erreur sur le formulaire afin que les erreurs de frappe peuvent être rapportées de manière modeste, définissez la propriété ErrorProvider du nouveau contrôle. Modifier éventuellement la propriété de fraction. Vous pouvez vous abonner à l'événement ValueChaged pour savoir que la valeur a été modifiée. P> p>
Il y a un moyen très simple: à l'aide d'événements TextChanged et de départ.
private void textBox_Leave(object sender, EventArgs e) { // Since you were validating the number while typing now there is no need for TryParse decimal theNumber = decimal.Parse((sender as TextBox).Text); (sender as TextBox).Text = string.Format("{0:N2}", theNumber); }
Je ne sais pas si cela va vous aider, mais voilà ici:
try { double number = Convert.toDouble(textBox.Text); string[] digits = Regex.Split(textBox.Text, @"\W+"); int x = 0; List<string> finalNumber = new List<string>(); while(x < numbers.Length) { if(digits[x] == ".") break; if(x%3 = 0 && x != 0) { finalNumber.Add(","); } finalNumber.Add(digits[x]); x++; } string finalNumberJoined = ""; foreach(var digit in finalNumber) { finalNumberJoined = finalNumberJoined + digit; } } catch { //not a number }
Si ce
1,00 000,00 code> soit
100 000,00 code> peut-être?