2010-05-07 24 views
1

我有一個設備列表,需要根據用戶選擇的選項進行過濾。一種這樣的選擇是冷卻:當用戶選擇冷卻時,僅顯示具有冷卻的裝置。如果未選擇冷卻,則會顯示所有設備(有或沒有冷卻)。使用什麼控制

我想知道我最適合使用這種控件。我的感覺是綜合類複選框是不是一個很好的控制,因爲它代表:

沒有冷卻(未選中)/只冷卻 (選中)

,而我想

冷卻和無冷卻(未選中)/ 只冷卻(選中)。

這裏最好使用什麼控件?

謝謝。

回答

1

我看到三個選項,按優先順序排列如下:

  • 使用三態複選框(一個可以變灰),使用ThreeState property。這裏的主要優勢是更少的雜亂,更少的閱讀和更少的點擊次數。如果它們一開始處於灰色,則用戶很清楚這種狀態是可能的,並且與通常的複選框行爲的偏差應該不成問題。

  • 使用帶有「是」,「否」和「無所謂」選項的下拉列表。如果部分或全部選項最初將成爲明確的「是」或「否」,則這可能是更好的選擇。

  • 使用三欄單選按鈕的網格。醜陋的,需要一些想法來理解它。我不會這樣做。

+0

我害怕使用三態複選框,因爲我認爲人們不知道它,但將其默認爲灰色狀態可能確實有效。 – Tarscher 2010-05-07 07:27:16

+0

你總是可以做一些走廊可用性測試來驗證這一點。 http://en.wikipedia.org/wiki/Usability_testing#Hallway_testing – Thomas 2010-05-07 07:33:12

+0

三態cheboc aproach的問題是我只有2個狀態(all/yes)而不是(all/yes/no)。我將不得不以編程方式禁用no狀態。 – Tarscher 2010-05-07 07:34:38

1

不要忘記,一個.NET複選框類可以被設置爲具有三種狀態

CheckBox.ThreeState = TRUE; 

編輯這給了你真或假CheckBox.Checked和檢查,未經檢查或不確定的CheckBox.CheckState

1

該複選框是正確的控件。你只需要正確地標記它:「僅包括設備:[]隨着冷卻。」這似乎毫不含糊地說,取消選中意味着不使用過濾器,並且包括有和沒有冷卻的設備。一般情況下,用戶將空白(包括未選中)解釋爲「不對此條件進行查詢/過濾」,而不是「反轉此查詢過濾條件」。

如果您不確定,則使用單選按鈕或者如果空間很緊,則爲下拉列表):「只包括設備:()有冷卻,()有或沒有冷卻」

如果您想要包含無冷卻過濾選項,則必須使用無線按鈕或下拉列表:「僅包含設備:()有冷卻,()無冷卻。「同樣,如果您需要顯示兩種以上的狀態,則必須使用單選按鈕或下拉列表:」僅包括設備:()帶冷卻功能,()不帶冷卻功能, ()帶或不帶散熱。「

你是正確的,使用三態複選框會令人困惑。混合狀態用於表示「某些是,一些不是」,「不是」和「不是」。「Windows UX交互準則」特別禁止將複選框的混合狀態用作單個項目的第三個狀態(在此情況下, ),或讓用戶選擇混合狀態(pg49)。

總的來說應該避免。