C# 当用户键入时,如何将所有键入的字符捕获到文本框中?
在C语言中,当用户输入时,如何捕获输入到文本框中的所有字符 因此,如果用户键入helloworld,函数将捕获每个单独的字符并对其进行处理 我需要超级精确的控制所有文本,因为它来了。我将从文本框中删除所有无效字符,并允许用户堆叠某些字符,然后在使用其他字符时触发一系列函数 例如: 用户在文本框中键入以下内容 布拉格布拉格600*50-90布拉格 这就是我想处理这一混乱局面的方式: 读取每个字符时,所有字母字符都会从内存和文本框中丢弃,因此用户甚至看不到输入的字符 所以第一部分甚至没有显示,然后当用户键入6并粘贴到文本框,然后是0,然后是0,最终显示给用户的是600。然后用户键入*并从屏幕中丢弃,但它会导致启动一个函数,该函数获取文本框中的数字并等待下一个数字 我可以处理大部分问题,但在C语言中验证键盘上的用户输入并不容易C# 当用户键入时,如何将所有键入的字符捕获到文本框中?,c#,winforms,keyboard,C#,Winforms,Keyboard,在C语言中,当用户输入时,如何捕获输入到文本框中的所有字符 因此,如果用户键入helloworld,函数将捕获每个单独的字符并对其进行处理 我需要超级精确的控制所有文本,因为它来了。我将从文本框中删除所有无效字符,并允许用户堆叠某些字符,然后在使用其他字符时触发一系列函数 例如: 用户在文本框中键入以下内容 布拉格布拉格600*50-90布拉格 这就是我想处理这一混乱局面的方式: 读取每个字符时,所有字母字符都会从内存和文本框中丢弃,因此用户甚至看不到输入的字符 所以第一部分甚至没有显示,然后当
所以问题是:我可以在每个字符位于按键右侧时对其进行代码操作吗?很简单,您可以这样使用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;
}
}
很简单,您可以像这样使用按键事件:
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;
}
}
如果您只使用文本框只允许使用particluar字符作为输入,您可以尝试使用。如果您只使用文本框只允许使用particluar字符作为输入,您可以尝试使用。或者,您可以使用TextChanged,但这不会给您按下的字符。干杯,如何停止将键入的字符加载到文本框?我真的很想控制加载到文本框中的内容。请查看我的编辑,这是一种方法。通过将KeyPressEventArgs.Handled设置为true,您可以告诉控件您已经处理了keypress,并且它不需要执行任何其他操作,因此它不会插入该键。您可能会发现enter键会发出令人讨厌的噪音,如果您愿意,请查看本文。水果应该是一个真正的单词:或者,您可以使用TextChanged,但这不会给您提供已按下的字符。干杯,Adam,我如何停止将已键入的字符加载到文本框中?我真的很想控制加载到文本框中的内容。请查看我的编辑,这是一种方法。通过将KeyPressEventArgs.Handled设置为true,您可以告诉控件您已经处理了keypress,并且它不需要执行任何其他操作,因此它不会插入该键。您可能会发现enter键会发出令人讨厌的噪音,如果您愿意,请查看本文。水果应该是一个真正的单词: