2010-06-14 9 views
0

je besoin d'un moyen d'afficher le caractère courant/caractère, comme vous voyez dans certaines applications Web, le caractères actuels/limite de caractères pour une Text Control (à savoir 3/500). Je vois habituellement ceci comme label résidant directement au-dessus ou au-dessous du Text Control.WinForm contrôle de texte qui affiche la limite

Comment cela est-il «normalement» accompli? Dois-je remplacer mon Text Control en quelque sorte? Dois-je ajouter manuellement des étiquettes par Text Control et bind aux propriétés du Text Control? Ai-je besoin de créer un contrôle composite qui a le T ext Control & Label Controls ensemble pour accomplir ce dont j'ai besoin?

Toute direction ou aide sera grandement appréciée.

Répondre

1
int maxChars = 100; 

Textbox onKeyUp: 
remainingChars.Text = Convert.ToString(maxChars - textbox.Text.Length); 

bâton dans une fonction:

getRemainingChars(TextBox tb, Label lbl, int max) 
{ 
lbl.Text = Convert.ToString(max - tb.Text.Length) + "/" + Convert.ToString(max); 
} 

Espérons que des thats d'aide

+0

Je ne suis pas sûr de comprendre ce que vous suggérez. Est-ce que 'remainingChars' est un' Label'? Si oui, ne devrait-il pas être (maxChars - textbox.text.Length). –

+0

Ahh, la partie de la fonction n'était pas là quand j'ai commenté. Donc, vous suggéreriez d'ajouter manuellement des étiquettes par chaque contrôle de texte, puis d'utiliser cette fonction? Cela semble faisable, merci. –

+0

Ouais désolé, je l'ai eu le mauvais chemin. Et ouais je pense que c'est ce que je ferais. : o) Oh et oui remainingChars est une étiquette – vimist

2

Joindre un gestionnaire à TextBox.TextChanged et actualiser l'étiquette basée sur TextBox.Text.Length et la taille maximale que vous souhaitez autoriser. Vous pouvez également appliquer la limite dans le même gestionnaire en appelant le TextBox.Text = TextBox.Text.Substring(0, maxChars);.

+0

Juste pour clarifier, de cette façon je créerais une étiquette pour chaque contrôle de texte et un gestionnaire d'événement pour chaque contrôle de texte aussi bien? Je veux juste m'assurer que je comprends bien. Merci –

+0

Cependant, faites seulement cette dernière partie si la longueur est supérieure à maxChars ou vous obtiendrez une exception. – devios1

+0

Si vous le souhaitez, vous pouvez l'empaqueter dans un UserControl réutilisable, vous n'avez donc qu'à écrire la fonctionnalité une seule fois. – devios1