C#" Textchanged"事件和无限循环?

时间:2016-06-09 15:36:10

标签: loops events textbox infinite textchanged

我目前正在创建一个包含三个文本框的应用程序。键入一个方框将导致另外两个进行"转换"显示的文本版本。所有三个框都可以输入并用于相同的目的(尽管为转换提供不同的输出)。

" TextChanged"只要更改框的文本值,就会调用event,这是相当不言自明的。但是,如果我通过代码更改值,此事件也会触发。

如果我更改了第一个框,它会在第二个框中创建文本。第二个盒子也会触发事件吗?这会导致无限循环吗?

2 个答案:

答案 0 :(得分:0)

不,它不会。从事件的MSDN页面获取的文本:

  

当文本框的内容在发布到服务器的帖子之间发生更改时,会引发TextChanged事件。只有在用户更改了文本时才会引发该事件;如果以编程方式更改文本,则不会引发该事件。

MSDN page

答案 1 :(得分:0)

是或否。

此行为不同于Winform和ASP.Net(每个行为对应于System.Windows.Forms.TextBox和System.Web.UI.WebControls.TextBox),这意味着如果要创建ASP.Net应用程序,则答案是否,但是如果您使用的是Winform应用程序,那么答案是肯定的。 请参考以下与MSDN不同的说法:

System.Windows.Forms.Control.TextChanged Event

  

备注

     

如果将Text属性更改为一个,则会引发此事件   程序修改或用户交互。

     

有关处理事件的更多信息,请参阅处理和引发   活动。

System.Web.UI.WebControls.TextBox.TextChanged Event

  

当文本框的内容出现时,将引发TextChanged事件   在服务器的帖子之间进行更改。仅当   文字由用户更改;如果文本是   以编程方式更改。