在C#中,如何在用户输入的情况下捕获输入char
的所有textbox
?
因此,如果用户输入Hello World
,该功能会捕获每个人char
并对其进行处理。
我需要对所有文本进行超级精确控制。我将从textbox
中删除所有无效字符,并允许用户在使用时将某些字符和其他字符叠加在一起职能之火。
示例:
用户在textbox
Blarg Blarg 600*50-90blarg
这就是我想要操作这个烂摊子的方式:
当每个Char被读取时,所有字母字符将从内存和文本框中丢弃,以便用户甚至看不到它们被输入。
所以第一部分甚至没有出现,然后当用户键入6
时,它会粘贴到文本框,然后是0
然后0
,所以最终显示的是用户是600
。然后用户键入*
,这将从屏幕中丢弃,但它会触发一个函数,该函数接受文本框中的数字并等待下一个数字。
我可以处理大部分内容,但在C#
中验证来自键盘的用户输入并不容易所以问题:我可以在每个字符串上操作代码,因为它们来自键吗?
答案 0 :(得分:4)
很简单,您可以像这样使用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;
}
}
答案 1 :(得分:1)
如果您仅使用文本框仅允许特定字符作为输入,则可以尝试使用MaskedTextBox
。