如何捕获用户键入文本框时输入的所有字符's ?
本文关键字:字符 输入 用户 何捕获 文本 | 更新日期: 2023-09-27 18:08:07
在c#中,我如何捕获所有输入到textbox
的char
作为用户键入?
因此,如果用户输入Hello World
,该函数将捕获每个单独的char
并处理它。
我需要超级精确的控制所有的文本,因为它进来。我将从textbox
中删除所有无效字符,并允许用户将某些字符堆叠起来,然后当它们被使用时,其他一些字符将触发函数。
的例子:
用户在textbox
Blarg Blarg 600*50-90blarg
我想这样处理这堆乱七八糟的东西:
当读取每个Char时,将从内存和文本框中丢弃所有字母字符,因此用户甚至看不到它们被输入。
所以第一部分甚至没有显示,然后当用户输入6
时,它粘在文本框上,然后是0
,然后是0
,所以最终显示给用户的是600
。然后用户输入*
,这将从屏幕上被丢弃,但它会触发一个函数,该函数接受文本框中的数字并等待下一个数字。
我可以处理这些,但是在c#中验证来自键盘的用户输入并不容易
那么问题来了:我能不能在键右边的每个字符上操作代码?
很简单,您可以这样使用KeyPress事件:
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
char c = e.KeyChar;
// your code here
}
您可以这样解析char信息:
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
char c = e.KeyChar;
if (c >= 48 && c <= 57)
{
// numeric value
// do something
}
else if (c == 42)
{
// multiply (*)
// do something
}
else if (c == 47)
{
// divide (/)
// do something
}
else if (c == 13)
{
// enter key
// do something
}
else
{
// discard
e.Handled = true;
}
}
如果您只使用文本框只允许特定字符作为输入,您可以尝试使用MaskedTextBox
.