0

我正在对文本框的 KeyPress 事件执行一个方法,但该方法是在将键实际输入到框中之前运行的。

如果我使用 KeyUp,我会得到我正在寻找的行为,除了软键上的 KeyUp 触发器以及标准字符,这对我来说并不是特别有用。

将密钥输入框中后,我可以让 KeyPress 运行吗?或者我可以轻松地让 KeyUp 忽略软键吗?

4

4 回答 4

1

好吧,您可以在 KeyPress 事件中记住 keychar,并使用记住的字符在 KeyUp 中执行所有必要的逻辑。

于 2009-07-02T23:13:57.330 回答
0

您也可以从您的控件中尝试该TextChanged事件。textbox

于 2010-03-11T15:38:08.967 回答
0

将 keyUp 与 as 代码一起使用:

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
    }
}

您当然也可以检查其他字符,例如 . 等等

于 2010-03-11T15:54:43.063 回答
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;
}
于 2009-07-03T04:04:59.663 回答