如何使用“;textBox1_TextChanged";在“;textBox1_KeyDown”;作用
本文关键字:textBox1 KeyDown 作用 TextChanged 何使用 quot | 更新日期: 2023-09-27 17:58:54
我在textBox1上使用两个函数textBox1_TextChanged
和textBox1_KeyDown
,因为我想要的代码是在按下一些键后运行,并在文本更改时运行,工作正常,如下所示。
private void textBox1_TextChanged(object sender, EventArgs e)
{
TextChanged();
}
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
KeysPressed(sender, e);
}
但是ٰ我只想使用以下概念在textBox1_KeyDown()
下运行我的两个函数。
private string currentText = "";
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (currentText != textBox1.Text)
{
TextChanged();
}
currentText = textBox1.Text;
KeysPressed(sender, e);
}
我的问题是上层代码中的TextChanged();
在添加两个字符后运行。我希望它能在textBox1
中的每个字符和添加/删除/编辑/粘贴/替换时运行,所以有什么想法可以让它在第一次点击textBox1_KeyDown()
函数时运行吗?
解释如下:
我理解我的问题,当我使用textBox1_KeyDown()
事件时,它首先运行内部代码TextChanged();
,然后为自己的工作工作,就像我按下一个字符一样,然后它将运行TextChanged();
,然后在textBox1
中键入该字符,这就是为什么我的TextChanged();
无法检测到文本中的任何更改。那么如何解决这个问题。。。???
根据您的问题,我假设您的问题在textBox1_KeyDown
TextChanged();
的第一次命中时没有被调用。只有在第二次命中时,它才会被成功调用。如果我的理解是正确的,那么我认为问题在于启动时的If语句textBox1文本和currentText都将相等,因为两者都是空字符串。