TextBox 选中文本再键入字符,TextChanged 事件会执行3次??
wpf吧
全部回复
仅看楼主
level 3
如题,我给一个 TextBox 设置了 TextChanged 事件,在事件响应函数中 判断 输入字符长度>=2 时,焦点跳转至下个输入框。 但是,当这个TextBox 框中已经输入了2个字符,我将这两个字符选中,然后键入 其他字符时,出现了异常。
private void zd2_TextChanged(object sender, TextChangedEventArgs e)
{
//this.zd4.Text = this.zd1.Text;
if ( this.zd2.Text.Length >= 2)
{
this.zd3.Focus();
}
}
经过测试发现,当TextBox 中已有文本被选中时,再键入其他任一字符,TextBox的 TextChanged 事件会执行3次。
如下图所示,选中“TB”,键入“3”,TextChanged 事件中打印TextBox.Text.Length:
求教,我该如何修改,才能使TextBox 中的文本无论是在选中或非选中状态下 每被修改一次,都只触发一次TextChanged 事件。
2017年03月17日 02点03分 1
level 3
刚刚想到,我主要目的是判断TextBox.Text 的长度变更,然后焦点跳转。那么,能否自定义一个监听TextBox.Text.Length 改变的事件,这样在选中状态下键入文字,长度也最多只变更一次。如果可以的话,这个事件怎么自定义,是否有类似的例子。
2017年03月17日 03点03分 2
level 3
试试KeyUp事件
2017年03月17日 13点03分 3
1