情况: 表单有一个文本框,用户必须在其中键入一些文本。此文本框具有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?
答案 0 :(得分:5)
尝试使用TextChanged
事件代替KeyPress
。使用后者时,你的分数过早,因为Text
属性在处理完按键后会更新。
答案 1 :(得分:2)
这是因为KeyPress
在角色实际“进入”textBox1
之前被解雇了。如果您在键入时观看,则会注意到Form2
始终是textBox1
后面的字符。您将需要使用TextChanged
事件,在每次更改textBox1
中的文本后,会被触发。