WinForm CRUD应用的UI设计,哪些是有效的?

12

我正在设计一个WinForms CRUD应用,供大批护士和社工与客户信息进行交互。

他们需要“可能”与约30个不同的表单进行交互,而且“可能”需要为特定人员从一个表单跳转到另一个表单。

我正在为用户界面的设计感到困惑。我只设计过非常简单的线性WEBForm CRUD,您可以在页面上完成所需操作,然后单击下一步。

对于非线性的WINForm CRUD应用程序,什么是最合理的设计?

我曾尝试使用选项卡和嵌入式表单来实现,但由于我的能力不足,这种程序感觉非常笨重。我不确定直接使用MDI是否是正确的方法,因为我的用户非常简单,如果窗口被“隐藏”,他们可能很容易感到困惑。

如果有人必须自己制作WINForm CRUD应用程序,那么我将非常感激任何建议、见解或示例。

您使用过哪种UI布局(有或没有)?

这是我的一个示例->

来自DevFiles


选用制表符是一个非常不好的选择。 - George Stocker
@Gortok:你能详细说明或提供另一种选择吗?谢谢! - Refracted Paladin
就我个人而言,通常在进行是/否选择时,我更喜欢使用复选框(checkbox)而不是单选按钮(radio button)。 - Greg D
3个回答

5

免责声明:我已经做了很长时间的CRUD,但现在才开始我的第一个winforms应用程序。
因此,有一些混合的想法:
在我们目前的系统(使用Centura/Gupta编写)中,我们使用类似MDI的方法。我认为允许用户在不强制关闭当前工作的情况下开始处理新记录非常重要,因此始终显示打开窗口列表以允许快速在不同表单之间切换。例如: 在左下方显示打开窗口列表。 此外,该系统使得可以从内部打开一个记录,例如打开客户,显示该客户的订单,双击其中一个订单以打开它等等。
现在关于winforms:经过一些研究,我决定不使用MDI,而是使用包含一些SplitContainers的Form。其中一个容器面板显示打开窗口列表,另一个显示当前表单。由于我找不到在面板中显示窗体的方法,所以窗体被实现为用户控件。主窗体跟踪打开的窗口并在窗口列表中显示它们。如果用户单击列表中的窗口或从程序的其他位置打开相同的记录,则将显示适当的面板。正在进行的工作图片: 考虑将现有记录的选择与编辑分开,即使用某种类型的表格(如GridView)显示现有记录,并具有过滤和搜索功能,让用户双击这些记录以进行编辑。
我注意到您的屏幕截图上有“插入”和“更新”按钮。这是用于创建新记录和保存现有记录吗?我认为更好的方法是给用户一个“新建”按钮,然后打开一个具有“保存”和“取消”按钮的表单。用户可能不总是记得他开始编辑新记录还是现有记录。
顺便说一下,选择屏幕是“新记录”按钮的好地方。

关于插入/更新,如果他们拥有适当的权限,他们可以在该屏幕上进行更改并提交。感谢您的建议。 - Refracted Paladin
此外,您知道我应该使用UserControls而不是将我的表单嵌入面板的原因吗?我看到过几次出现用户控件,但说实话,我不知道如果使用它们会获得什么优势,相比于嵌入表单...? - Refracted Paladin
据我所知,您无法将表单嵌入面板中。但是考虑到我自己是WinForms新手。 - Stephan Keller
看看这个回答,是我其中一个问题的答案 http://stackoverflow.com/questions/543087/custom-class-for-dealing-with-embedding-in-forms/545864#545864似乎工作得相当不错。 - Refracted Paladin

5

通过开发 CRUD 类型应用,我学到的最重要的一点是,确保几乎每个按钮都有快捷键,并且选项卡顺序设置正确。

大多数情况下,在进行数据输入/修改时,您不想从键盘上取下双手,去移动鼠标到提交/更新按钮,尤其是在处理大量数据时。有了这两个设置,将极大地提高应用程序的生产力。


4

这里有几种通用的模式,有时它们可以结合使用:

  1. 选项卡页
  2. 树形视图(Win资源管理器文件夹,Visual Studio 的 工具|选项)
  3. 可折叠面板(Outlook 邮件/日历/联系人)

可折叠面板不是标准控件,但有多个实现可用(这里只是其中之一)。

你并不孤单,在这个SO答案中可以找到一些灵感。


感谢您的建议。至于灵感,那个页面上是否有适用于我的某个卡通形象? - Refracted Paladin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接