我正在尝试制作一个程序,每当你在文本框中输入一个字母时,字母表中的字母数字就会出现在标签中...... 我尝试过这样的代码:
private void textBox1_TextChanged(object sender, EventArgs e)
{
string userInput = textBox1.Text;
char charCount;
charCount = userInput[0];
label1 = charCount.Length.ToString();
}
但我无法找到解决问题的方法.....
我会感激我能得到的帮助......
答案 0 :(得分:0)
首先,当文本框中的文本发生变化时,您需要找到一个触发的事件。例如KeyUp。然后你需要使用这样的代码向它注册一个函数。
your_textbox.KeyUp += your_textbox_KeyUp;
Visual Studio将通过创建一个空函数来帮助您。
该功能应如下所示:
private void your_textbox_KeyUp(object sender, System.Windows.Input.KeyEventArgs e)
{
your_label.Content = your_textbox.Text.Length.ToString();
}
your_label.Content是将在标签中显示的属性,右侧的术语将获取文本框中文本的长度。
如果您希望标签不仅要说出数字,而是将其包装在文本中,请使用String.Format,如下所示:
your_label.Content = String.Format("The text is {0} characters long", your_textbox.Text.Length);
我的回答是针对WPF。如果您使用的是WinForms,则某些关键字可能会有所不同。
答案 1 :(得分:0)
我相信你只想要在文本框中写的字母数(字母),这里是一个简单的代码:
private void textbox_TextChanged(object sender, EventArgs e)
{
int i = 0;
foreach (char c in textbox.Text)
{
int ascii = (int)c;
if ((ascii >= 97 && <= 122) || (ascii >= 65 && ascii <= 90)) // a to z or A to Z
i++;
}
label1.Text = i.ToString();
}
更简单的代码:
private void textbox_TextChanged(object sender, EventArgs e)
{
int i = 0;
foreach (char c in textbox.Text)
if (char.IsLetter(c))
i++;
label1.Text = i.ToString();
}
答案 2 :(得分:0)
如果您要查找文本框中不同字母的数量,可以使用:
textbox.Text.ToUpper().Where(char.IsLetter).Distinct().Count();
答案 3 :(得分:0)
以字母显示字母位置。
private void textBox1_TextChanged(object sender, EventArgs e)
{
string userInput = textBox1.Text; //get string from textbox
if(string.IsNullOrEmpty(userInput)) return; //return if string is empty
char c = char.ToUpper(userInput[userInput.Length - 1]); //get last char of string and normalize it to big letter
int alPos = c-'A'+1; //subtract from char first alphabet letter
label1 = alPos.ToString(); //print/show letter position in alphabet
}