2016-06-09 138 views
0

我目前正在創建一個具有三個文本框的應用程序。鍵入一個框將導致其他兩個顯示文本的「轉換」版本。所有三個盒子都可以輸入並用於相同的目的(儘管爲轉換提供了不同的輸出)。C#「Textchanged」事件和無限循環?

只要文本框的文本值被更改,就會調用「TextChanged」事件,這是不言自明的。但是如果我通過代碼更改值,這個事件也會觸發。

說如果我改變了第一個框,它會在第二個框中創建文本。第二個盒子也會觸發事件嗎?這會導致無限循環嗎?

+0

我覺得這是一個有趣的情況,而是一個我見過之前實施。我認爲你應該寫一些代碼並找出答案! – dckuehn

+0

我第一次嘗試寫出兩個字符串(每個轉換一個),然後將所述字符串應用於框的文本字段。當我測試它時,它拒絕讓我打字,並不斷給出一個空白的文本框。我認爲這是因爲每次添加東西時它都會不斷應用空白字符串。 當我按下回車鍵而不是textchanged時,我改變它來調用轉換函數(並因此應用新的字符串)。現在工作正常,但使用「輸入」鍵創建一個角色,我不知道如何引用......但這是一個全新的問題。 – Michael

回答

0

不,它不會。文本摘自MSDN頁面上的事件:

當文本框的內容在發佈到服務器的帖子之間發生變化時引發TextChanged事件。如果用戶更改了文本,則會引發該事件;如果文本以編程方式更改,則不會引發該事件。

MSDN page