2015-04-08 9 views
0

У меня есть TextBox1 & TextBox2, TB1 с обработчиком OnTextChanged, где я перемещаю Focus на TB2.Перемещение фокуса в результатах TextChanged в «Невозможно отменить или повторить, пока блок отмены открыт». при выполнении Ctrl-Z

Теперь, если я снова вручную сфокусирую TB1 и сделаю Ctrl-Z, я получаю сообщение "Cannot Undo or Redo while undo unit is open.". Кто угодно? :)

ответ

1

Это может быть полезно для других пользователей.

Я искал в Интернете и наткнулся на это сообщение несколько раз, но ничего не similair к моей ситуации/нет решения, но я видел следующую MSDN for the TextBox.Undo() method:

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

Что теперь я пытался это сделать фокус Async с BeginInvoke.

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

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