gpt4 book ai didi

winforms - Windows UI 设计 - 组合框

转载 作者:行者123 更新时间:2023-12-02 19:52:02 25 4
gpt4 key购买 nike

直到今天我才意识到列表框(如 HTML 表单控件下拉选择框)和“组合框”之间的区别,“组合框”是列表框和文本输入的组合控制。因此,组合框允许用户输入新值,如果进行编程,则会将该值附加到单击时显示的值列表中。

刚刚读了几本关于界面设计的书,我认为虽然这个概念听起来很酷,并且最终会让我不必制作另一个界面来“添加”选择,但我觉得它可能会让人感到困惑——高级用户可能会错过您可以通过这种方式输入值的事实。

有人对组合框的使用及其与良好的 UI 设计原则的优缺点有什么意见吗?我的应用程序应该被所有年龄段的许多人使用。

最佳答案

马特,这里有一些可能对您有用的详细信息,以便您继续使用。

我已经按照您提到的方式在表单上的几个地方使用了组合框。

除了添加功能之外,您还可以向用户提供编辑和删除选项,用户可以在其中编辑/重命名和删除组合条目。但是,在提供此功能时,您需要对所选索引非常小心,因为它可能会变得非常困惑。

就我而言,我有以下三项来处理上述所有功能:

  1. 带有 DropDownStyle = 的组合框下拉菜单
  2. 保存按钮
  3. 删除按钮

功能如下:

在组合框中,除了用户已保存的项目之外,我在顶部还有一个项目--New--。当用户必须编辑/重命名某个项目时,他应该从组合中选择该项目,在组合中键入新名称,然后单击“保存”。如果用户想要添加新项目,他应该从组合中选择--New--,在组合中输入名称(这将覆盖--New--),然后单击保存如果用户需要删除某个项目,他只需选择该项目并单击“删除”

我已经实现了 SelectionChangeComfilled 事件而不是 SelectedIndexChanged ,因为如果通过代码设置所选索引,则后者会触发事件,而前者仅在用户选择时触发屏幕上组合框中的项目。

此外,我还维护了一个名为 _selectedComboID 的表单级别变量,它存储当前所选组合项的 ID。它在 SelectionChangeCommited 事件处理程序中设置。这是因为,如果您必须重命名组合中的条目,您将首先选择它。那时 selectedIndex 是正确的(您选择的索引)。然后,由于您需要重命名它,因此您将编辑组合文本并单击“保存”。但是,由于您已经编辑了名称,它现在与所选索引混淆了。因此,当用户做出选择时,我事先将其保存在变量中。

在 Save 方法中,我检查了 _selectedComboID 是否与 --New-- 的 ID 相同。如果是,则触发插入代码,否则触发编辑代码。在这两种情况下,除了其他验证之外,您还需要检查用户选择的名称是否已存在。

如果您为组合框设置 Sorted = true,则在整个代码中使用 SelectedItem 而不是 SelectedValue 非常重要。这是因为当您将组合框的排序设置为 true 时,它​​会弄乱所选值。你可以引用我的帖子Setting selected item in a ListBox without looping了解详情。

哇,太巨大了!希望它有帮助:)

关于winforms - Windows UI 设计 - 组合框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1135425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com