我有一个绑定到数据源的文本框。文本框的 TextChanged 事件更新另一个文本框。
问题是,我不想显示第一个文本框,所以我将其 Visible 属性设置为 false。
但是,现在TextChanged
事件没有触发!
Visible=True
我可以通过在表单加载时设置,来解决它Left=-100000
,但我想要一个合适的解决方案。
任何人都可以提供解释吗?
我有一个绑定到数据源的文本框。文本框的 TextChanged 事件更新另一个文本框。
问题是,我不想显示第一个文本框,所以我将其 Visible 属性设置为 false。
但是,现在TextChanged
事件没有触发!
Visible=True
我可以通过在表单加载时设置,来解决它Left=-100000
,但我想要一个合适的解决方案。
任何人都可以提供解释吗?
textbox.Visible = false
在 FormLoad 事件中而不是在设计器中设置您的。它与句柄创建有关。如果在构造过程中文本框不可见,则不会创建句柄。如果文本框在构造后不可见,则句柄将已创建并且将发生事件。
请参阅 MSDN 上的此讨论。
已接受答案的另一种解决方案是在 Loaded 上设置 TextChanged 侦听器,这对我来说是一样的(至少在 Silverlight 中)并保持设计器视图应有的状态。
它是什么类型的数据源?它可能有一个您可以直接使用的事件,而不是使用文本框来侦听更新。
如果Visible
等于 falseControl
则不呈现。因此它将无法触发事件。
相反,将 设置style
为display:none
。您可以使用集合以编程方式设置/取消设置Attributes
:
MyTextBox.Attributes.Add("style", "display: none");