2010-06-22 106 views
4

我有一個綁定到數據源的文本框。文本框的TextChanged事件更新另一個文本框。當Visible = False時TextBox TextChanged事件不會觸發?

的問題是,我不希望第一個文本框來顯示,所以我設置它的Visible屬性設置爲false。

然而,現在TextChanged事件不火!

我可以通過在表單加載上設置Visible=True,Left=-100000解決它,但我想要一個適當的解決方案。

任何人都可以提供解釋嗎?

+0

什麼樣的TextBox:WinForms,HTML或WPF? – Richard 2010-06-22 08:40:04

+0

對不起,winforms。 – Blorgbeard 2010-06-22 08:41:18

回答

7

坐落在FormLoad事件,而不是在設計你的textbox.Visible = false。它與處理創建有關。如果在構建過程中文本框不可見,則不會創建句柄。如果文本框在構建後不可見,則該句柄將被創建併發生事件。

在MSDN上查看此discussion

-1

如果Visible等於假,則Control不會被渲染。因此它將無法觸發一個事件。

相反,設置styledisplay:none。您可以設置/取消該程序使用Attributes集合:

MyTextBox.Attributes.Add("style", "display: none"); 
+0

對不起,我正在談論winforms。在問題中添加了標籤。 – Blorgbeard 2010-06-22 08:42:01

0

什麼類型的數據源是什麼?它可能有一個事件,您可以直接使用而不是使用文本框來偵聽更新。

3

的替代解決方案的接受的答案是建立在框TextChanged監聽器上加載的,這對我的作品一樣的(在Silverlight至少),並保持它應該是設計師的觀點。

+0

謝謝,這對我的控制是在彈出窗口內(所以不會顯示,直到打開),所以使用接受的答案沒有效果。 – Ralt 2017-08-31 09:21:41

相關問題