C# 在键入键后,操作keypress方法

C# 在键入键后,操作keypress方法,c#,textbox,keypress,C#,Textbox,Keypress,我正在对文本框的按键事件执行一个方法,但该方法是在键实际输入框之前运行的 如果我使用KeyUp,我会得到我想要的行为,除了软键和标准字符上的KeyUp触发器,这对我来说不是特别有用 我可以让按键在输入框后运行吗?或者我可以很容易地让KeyUp忽略软键吗?嗯,您可以在KeyPress事件中记住keychar,并使用记住的char在KeyUp中执行所有必要的逻辑。在KeyPress事件中,您可以将textbox.Text和e.keychar连接到一个新字符串中并处理这个新字符串 private vo

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

如果我使用KeyUp,我会得到我想要的行为,除了软键和标准字符上的KeyUp触发器,这对我来说不是特别有用


我可以让按键在输入框后运行吗?或者我可以很容易地让KeyUp忽略软键吗?

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

在KeyPress事件中,您可以将
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;
}

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

将keyUp与as-code一起使用:

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
    }
}
private void textBox1\u KeyUp(对象发送方,System.Windows.Forms.KeyEventArgs e)
{
//仅在键入字母字符时执行操作

如果((e.KeyCode>=Keys.a)&&(e.KeyCode=Keys.a)&&当KeyUp被触发时,文本框已经包含了被压缩的字符。我想我可以在KEKPress中连接文本框字符串和Kichar,这样代码就可以处理正确的值。这是可能的,但是你觉得更难:光标可以在文本中间(你需要插入字符)。可以在文本框中选择(char替换选择),你必须正确地处理控制字符(标签,回退等)。也许你可以更新你的问题,告诉我们你想要达到的最终结果?嗯,如果在文本框中间的光标键按下时会怎样?