2016-06-09 8 views
0

В настоящее время я создаю приложение с тремя текстовыми полями. Ввод в один квадрат приведет к тому, что другие два имеют «преобразованные» версии отображаемого текста. Все три окна могут быть введены и использоваться для одной цели (хотя для преобразования используются разные выходы).C# "Textchanged" событие и бесконечный цикл?

Событие «TextChanged» вызывается всякий раз, когда текстовое значение поля изменяется, что довольно понятно. Но будет ли это событие также срабатывать, если я изменю значение через код.

Скажем, если бы я изменил первый квадрат, это создало бы текст во втором. Будет ли вторая коробка также инициировать событие? И это приведет к бесконечному циклу?

+0

Я думаю, что это интересная ситуация, но один, что я видел реализован раньше. Я думаю, вы должны написать код и узнать! – dckuehn

+0

Сначала я попытался выписать две строки (по одному для каждого преобразования), а затем применить указанную строку к текстовому полю окна. Он отказался дать мне ввести, когда я его протестировал, постоянно давая пустое текстовое поле. Я предполагаю, что это потому, что он постоянно применял пустую строку каждый раз, когда я что-то добавлял. Я изменил его, чтобы вызвать функцию преобразования (и, следовательно, применить новые строки), когда я нажал клавишу ввода, а не на textchanged. Теперь работает отлично, но с использованием ключа «enter» создается символ, который я не знаю, как ссылаться ... но это совершенно новая проблема. – Michael

ответ

0

Нет, это не так. Текст, полученный на странице MSDN в событии:

Событие TextChanged возникает, когда содержимое текстового поля изменяется между сообщениями на сервер. Событие возникает только в том случае, если текст изменяется пользователем; событие не возникает, если текст изменяется программно.

MSDN page