我正在设计一个 WinForms CRUD“类似”应用程序,供一大群护士和社会工作者与客户信息进行交互。

有很多种不同的形式(大约 30ish)他们需要“可能”与任何给定的客户进行交互,并且他们“可能”需要为特定的人从一个客户跳到另一个客户。

我正在为用户界面的设计而苦苦挣扎。我只设计了非常简单的线性 WEBForm CRUD,您可以在页面上执行所需的操作,然后单击下一步。

对于非线性 WINForm CRUD 应用程序来说,什么意义重大?

我已经开始使用在这些选项卡中嵌入表单的选项卡,但可能由于我缺乏能力,该程序感觉非常庞大。我不确定直接 MDI 是否可行,因为我的用户非常简单,如果窗口被“隐藏”,他们可能很容易感到困惑。

我非常感谢任何人可能有的任何建议、见解或例子。特别是如果有人必须自己制作 WINForm CRUD 应用程序。

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

我目前的示例如下 -->

http://lh6.ggpht.com/_DqVwi_JXyS0/Sf8EI0ETYrI/AAAAAAAABhI/pmAhozErubo/s288/MATRIXUIExample.JPG开发文件
有帮助吗?

解决方案

这里有一些可接受的模式,有时您可以有效地将它们组合起来:

  1. 标签页
  2. TreeView(Win Explorer文件夹,Visual Studio的工具|选项)
  3. 崩溃面板(Outlook Mail/Calendar/Contacts)

折叠面板不是标准控件,但有几种可用的实现(这里是 只有一个)

你并不孤单,如果需要一些灵感,请看这个 所以答案.

其他提示

我通过CRUD类型的应用程序学到的最重要的事情之一是确保几乎每个按钮都有热键,并且Tab键顺序设置正确。

大多数情况下,当您进行数据输入/修改时,您不希望将手从键盘上移开以将鼠标移动到“提交/更新”按钮,尤其是在需要处理大量数据的情况下。按顺序放置这两个项目将大大提高应用程序的生产力。

免责声明:我一直在做CRUD,因为我不知道有多长时间,但我现在刚开始使用我的第一个winforms应用程序。

所以,一些混合的想法:

在我们当前的系统(使用Centura / Gupta编写)中,我们使用类似MDI的方法。 我认为允许用户开始处理新记录而不强迫他关闭当前工作是很重要的,因此总是显示打开窗口列表以允许在不同表单之间快速切换。示例:


(来源: pingmbh.de
左下方打开的窗口列表。 该系统也可以从另一个内部打开一个记录,例如,打开一个客户,显示该客户的订单,双击他的一个订单打开它等等。

现在关于winforms:在做了一些研究之后,我决定不再使用MDI,而是使用包含一些SplitContainers的Form。其中一个容器面板显示打开的窗口列表,另一个显示当前窗体。由于我没有找到在面板中显示表单的方法,因此表单被实现为用户控件。主窗体跟踪打开的窗口并将其显示在窗口列表中。如果用户单击列表中的窗口,或者从程序中的其他位置打开相同的记录,则会将相应的面板置于最前面。正在进行的工作的图片:
(来源: pingmbh.de
考虑从编辑这些记录中分离现有记录的选择,即在具有过滤和搜索功能的某种表格(如网格视图)中显示现有记录,并让用户双击这些记录进行编辑。

我在屏幕截图中注意到您有“插入”按钮的按钮和“更新”。这是用于创建新记录和保存现有记录吗?我认为更好的方法是给用户一个“新”的方法。按钮,然后打开一个“保存”的表单和“取消”纽扣。用户可能不会总是记住他是否开始编辑新记录或现有记录。

选择屏幕btw是“新记录”的好地方。按钮。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top