【问题标题】:Windows form application checkbox layoutWindows 窗体应用程序复选框布局
【发布时间】:2015-09-26 17:22:18
【问题描述】:

我正在使用 c# 开发我的 Windows 窗体应用程序。我对我的复选框布局列表有疑问。假设我的用户可以在组合框中选择一个项目,其中包含从数据库中获取的应用程序名称列表。当用户选择应用程序时,用户可以选择一个类,它的等级。例如 9A 级、9b 级、10e 级。从 9 年级到 12 年级,从 A 到 B。我所做的是我添加了一堆复选框来做到这一点。我不确定这是否是一个好方法。这是因为当我选择一个应用程序时,会检查那个年级和班级的哪个学生。例如,如果我的第一个应用程序有学生可以使用该应用程序,则会根据他们的年级和班级进行检查,例如 9A、9B 和 11D 年级的学生是否使用该应用程序,则将选中复选框 9、11 和年级,并且A、B、D 将在课堂上进行检查。起初我认为这是一个很好的布局,但后来我意识到用户可能会因为不知道精确匹配而感到困惑。他们可能会想“哦,可能是 A、B、D 的 9 年级和 A、B、D 的 11 年级”,但实际上并非如此。我不确定解决此问题的好方法。 帮助将不胜感激。谢谢。

例如

Grade:

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

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

【问题讨论】:

  • 对于良好的用户界面,只有合法的选择(和所有合法的选择)应该对用户可用。听起来您需要重新访问。也许在你编码之前把它画出来。
  • 嗨史蒂夫,我以前画过,但这是我想出的,但我不确定如何使它更具可读性
  • 基于那个简单的 UI,如果选中 9 和 11,并且选中 A、B 和 D,那么查询将是(9A 或 9B 或 11D)是没有意义的。

标签: c# winforms user-interface


【解决方案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

那么只有勾选了相应的等级,复选框 A 到 E 才可用。

【讨论】:

  • @DragonBorn 如果您在DataGridView 中显示结果,那么您可能需要查看codeproject.com/Articles/33786/DataGridView-Filter-Popup。这样,初始 SQL 查询只需要一组简单的 UI 控件,用户可以根据需要过滤 dgv。
  • 谢谢,我不认为我会将结果显示到 DataGridView,因为我只想将数据导出到 excel 文件
猜你喜欢
  • 2016-10-28
  • 2011-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多