C#KeyPress事件不会将文本框中的最后一个字符复制到表单的文本属性中

时间:2013-04-14 21:11:22

标签: c# string copy keypress

情况: 表单有一个文本框,用户必须在其中键入一些文本。此文本框具有KeyPress事件,其中Form的text属性更改为用户在每次击键时键入的文本。

以下是文本框的KeyPress事件的代码:

 private void tbGameTitle_KeyPress(object sender, KeyPressEventArgs e)
        {
            this.Text = textBox1.Text;
        }

问题: 用户键入的最后一个字符不会复制到表单的文本中。例如:

textBox1.Text = "The War of 1812"
Form2.Text = "The War of 181"

textBox1.Text中“1812年战争”末尾的“2”不会被复制到Form2.Text。

如何将整个文本字符串从textBox1.Text复制到Form2.Text?

2 个答案:

答案 0 :(得分:5)

尝试使用TextChanged事件代替KeyPress。使用后者时,你的分数过早,因为Text属性在处理完按键后会更新。

答案 1 :(得分:2)

这是因为KeyPress在角色实际“进入”textBox1之前被解雇了。如果您在键入时观看,则会注意到Form2始终是textBox1后面的字符。您将需要使用TextChanged事件,在每次更改textBox1中的文本后,会被触发。