我正在对文本框的KeyPress事件执行某个方法,但该方法正在运行之前该键实际输入到框中。
如果我使用KeyUp,我会得到我正在寻找的行为,除了软键上的KeyUp触发器以及标准字符,这对我来说并不是特别有用。
键入框后,我可以让KeyPress运行吗?或者我可以轻松地让KeyUp忽略软键吗?
答案 0 :(得分:1)
好吧,你可以记住KeyPress事件中的keychar,并使用记忆的char在KeyUp中完成所有必要的逻辑。
答案 1 :(得分:0)
在你的按键事件中,你可以将textbox.Text
和e.KeyChar
连接成一个新字符串并处理这个新字符串。
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
string newString = textBox1.Text + e.KeyChar.ToString();
// Process newString
// If after processing you do not wish to undo the typed letter do
// e.Handled = true;
}
答案 2 :(得分:0)
您还可以尝试TextChanged
控件中的textbox
事件。
答案 3 :(得分:0)
将keyUp与代码一起使用:
private void textBox1_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e)
{
//only do things when an alphabetical character is typed
if ((e.KeyCode >= Keys.a) && (e.KeyCode <= key.z) ||
(e.KeyCode >= Keys.A) && (e.KeyCode <= key.Z))
{
// do your thing
}
}
您还可以检查其他字符。等