2015-09-26 61 views
0

我正在使用c#在windows窗體應用程序上工作。我對我的複選框佈局列表有疑問。假設我的用戶可以在組合框中選擇一個包含從數據庫中獲取的應用程序名稱列表的項目。當用戶選擇應用程序時,用戶可以選擇一個班級,並且是成績。例如9A級,9B級,10E級。從9年級到12年級以及A到B級。我所做的是添加一堆複選框來完成它。我不確定這是否是一個很好的方法來做到這一點。這是因爲當我選擇一個應用程序時,哪個學生將會被選中。例如,如果我的第一個應用程序有學生可以使用該應用程序,將按照他們的成績和班級進行檢查,例如,如果9A,9B和11D年級的學生使用該應用程序,則選中方框9,11並選中成績,以及A,B,D將從課堂上進行檢查。起初我認爲這是一個很好的佈局,但後來我意識到用戶可能會因爲不知道完全匹配而感到困惑。他們可能會想:「哦,它可能是A,B,D和11年級的A,B,D」,但事實上並非如此。我不確定解決此問題的好方法。 幫助將不勝感激。謝謝。Windows窗體應用程序複選框佈局

例如

Grade: 

[] 9 []10 []11 []12 
Class 

[]A []B []C []D []E 
+0

對於良好的用戶界面,只有合法的選擇(以及所有合法的選擇)才能提供給用戶。這聽起來像你需要重新審視。也許在編寫代碼之前繪製出來。 –

+0

嗨史蒂夫,我已經畫出來了,但是這是我想出的,但我不確定如何使它更具可讀性 – RedRocket

+0

基於這個簡單的用戶界面,如果選中了9和11,並且A, B和D被檢查,查詢將是(9A或9B或11D)是沒有意義的。 – Loathing

回答

1

也許這樣的UI可能會更好:

[x]9 [x]A [x]B [x]C [ ]D [ ]E 

[ ]10 [ ]A [ ]B [ ]C [ ]D [ ]E 

[x]11 [ ]A [x]B [ ]C [ ]D [ ]E 

[x]12 [ ]A [ ]B [ ]C [ ]D [ ]E 

那麼SQL語句應該是這樣的:

where Grade = 9 and Class in (A, B, C) or Grade = 11 and Class in (B) or Grade = 12 

那麼接下來的複選框一到E僅在相應等級被選中時纔可用。

+0

謝謝,這是一個很好的答案:) – RedRocket

+0

@DragonBorn如果你在'DataGridView'中顯示結果,那麼你可能想看看http://www.codeproject.com/Articles/33786/DataGridView-Filter-Popup 。這樣,初始SQL查詢只需要一組簡單的UI控件,用戶可以根據需要過濾dgv。 – Loathing

+0

謝謝,我不認爲我會將結果顯示到DataGridView,因爲我正在考慮將數據導出到Excel文件 – RedRocket