2012-01-30 31 views
0

我的應用程序中有一些DomainUpDown控件。該行爲是這樣設置:防止控件在未啓用時更改其Text屬性

  • 正常:每個控制器可單獨進入向上/向下(更改所選項目)
  • 特殊:如果一個複選框被選中,上/唐寧第一控制都將導致其他控件也要更改

現在有些情況下,我想通過設置Disabled = true來禁用某些控件。我這樣做了,但在這種情況下,更改第一個控件的選定項目將導致其他禁用控件也更改所選項目。

有沒有辦法完全禁用控件,因此它不接受像control.Text = "bla bla"這樣的東西?

P.S:我不需要隱藏控制!

+1

在更新TextBox值的事件中,爲什麼不簡單地檢查TextBox上的Enabled屬性,並且僅在文本設置爲true時才更改文本? – Lloyd 2012-01-30 08:34:21

+0

我保留,作爲我的最後一個選項。由於控件數量很多,需要大量編輯。我希望有一種方法可以完全禁用一個控件,我想知道爲什麼'Disabled'不會真的禁用控件! – 2012-01-30 08:37:05

+1

禁用只是防止用戶與控件交互或引發事件。 MSDN:使用Enabled屬性,可以在運行時啓用或禁用控件。例如,您可以禁用不適用於應用程序當前狀態的控件。您也可以禁用控件來限制其使用。例如,可以禁用按鈕以防止用戶點擊它。如果某個控件被禁用,則無法選擇該控件。 – Lloyd 2012-01-30 08:41:32

回答

1

方式一:

你可以抱着Textbox.Text值的列表,將舉行條目所有文本框。

OnTextChanged

  • 如果你的文本是啓用 - 更新它的text屬性,並將其存儲在列表中。

  • 如果您的文本框是已禁用 - 將文本property設置爲您在列表中的最後一個值。

可以使用類似的一個Dictionary或任何含有KeyValuePair對象。

0

恐怕沒有。至少不是沒有額外的工作。

+0

那不是一個答案。我不會-1你,但你需要詳細說明......什麼是'額外的工作'? – Shai 2012-01-30 08:24:11

+1

@Shai你可以派生自己的TextBox(或者你正在使用的組件),並且在修改Text時檢查Disabled屬性,或者使用TextChanged事件直接處理它。 – 2012-01-30 08:30:36

相關問題