在撤消单位打开时,在TextChanged中移动焦点会导致"无法撤消或重做。"在做Ctrl-Z时

时间:2015-04-08 15:08:43

标签: wpf focus undo textchanged

我有TextBox1&带有OnTextChanged处理程序的TextBox2,TB1,我将Focus移动到TB2。

现在,如果我再次手动对焦TB1并执行Ctrl-Z,我会收到消息"Cannot Undo or Redo while undo unit is open."。任何人? :)

1 个答案:

答案 0 :(得分:1)

这可能对其他人有用。

我在网上搜索了几次,却发现了这个消息,但没有任何类似的情况/没有解决方案,但我确实在MSDN for the TextBox.Undo() method看到了以下内容:

"The Undo method does not work with the KeyPress or TextChanged events."

我现在尝试的是使用BeginInvoke进行聚焦Async。

private void TB1_TextChanged(object sender, TextChangedEventArgs e)
{
    Dispatcher.BeginInvoke((Action)FocusTB2);
}

public void FocusTB2()
{
    TB2.Focus();
}