C#按键事件没有';t将文本框中的最后一个字符复制到表单';的文本属性

本文关键字:文本 最后一个 字符 属性 表单 复制 事件 | 更新日期: 2023-09-27 18:09:02

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

这是文本框的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"

文本框1中"1812年战争"结尾的"2"。文本不会复制到Form2.Text.

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

C#按键事件没有';t将文本框中的最后一个字符复制到表单';的文本属性

尝试使用TextChanged事件而不是KeyPress。使用后者还为时过早,因为Text属性会在处理按键后更新。

这是因为KeyPress在角色真正"进入"textBox1之前被激发。如果你边打字边看,你会注意到Form2永远是textBox1后面的一个字符。您将需要使用TextChanged事件,该事件在textBox1中的文本每次更改后都会触发