问题标签 [combobox]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
9 回答
26464 浏览

.net - 使用 ComboBox 的自动完成功能,同时将值限制为列表中的值?

在 WinForms 2.0 中,ComboBox 具有自动完成功能,它显示一个自定义下拉列表,其中仅包含以输入文本开头的值。

但是,如果我想将有效值限制为仅出现在 ComboBox 的项目列表中的值,我可以通过设置DropDownStyleto来做到这一点DropDownList,这会阻止用户输入值。

但是,现在我无法使用需要用户输入的自动完成功能。

是否有另一种方法可以限制对列表的输入,同时仍然允许使用自动完成功能?请注意,我已经看到了一些自定义解决方案,但我真的很喜欢匹配的自动完成项目在下拉列表中显示的方式,即使原始列表可能不是,也可以排序。

编辑:我考虑过只验证输入的值,即测试用户输入是否在TextChanged事件中有效,甚至在使用Validating事件中。那么问题是预期的行为是什么?我是清除它们的值(空值也是无效的),还是使用默认值?最接近的匹配值?

Ps 还有其他的标签可以添加到这个问题吗?

0 投票
3 回答
15010 浏览

c# - 如何用不同的数据填充每个 DataGridViewComboBoxCell?

我有两个在运行时添加的 DataGridViewComboBoxColumn 我需要第一个 DataGridViewComboBoxColumn 的项目在 gridview 的所有行中保持相同,但我希望第二个 DataGridViewComboBoxColumn 的项目根据所选的行与另一个不同第一个 DataGridViewComboBoxColumn 的项

如果我们说第一个 DataGridViewComboBoxColumn 代表位置,第二个 DataGridViewComboBoxColumn 代表子位置。所以我希望第二个 DataGridViewComboBoxColumn 项目是第一个 DataGridViewComboBoxColumn 中所选位置的子位置

0 投票
27 回答
704840 浏览

c# - 如何使用 C# 设置组合框中的选定项目以匹配我的字符串?

我有一个字符串“test1”,我的组合框包含test1test2test3。如何将所选项目设置为“test1”?也就是说,如何将我的字符串与组合框项目之一匹配?

我正在考虑下面的行,但这不起作用。

0 投票
3 回答
1878 浏览

c# - 如何使用设计人员友好的预绑定数据源创建派生组合框?

我想从 System.Windows.Forms.ComboBox 创建一个派生控件,该控件绑定到我从数据库中检索的对象列表。想法是其他开发人员可以直接在他们的表单上删除这个控件,而不必担心数据源、绑定,除非他们愿意。

我尝试扩展组合框,然后在构造函数中设置 DataSource、DisplayMember 和 ValueMember。

在我运行时工作,但一旦添加到任何表单中,就会在 Visual Studio 中引发很多错误。我得到的错误是:

“属性“项目”的代码生成失败。错误是:“对象引用未设置为对象的实例”

完成此任务的正确方法是什么(C#、Winforms、.NET 2.0+)?

0 投票
1 回答
1844 浏览

silverlight - 为什么这个简单的数据绑定场景不起作用?(组合框相关)

我已经在这个问题上挠了一段时间了,现在我很难过。

问题场景更容易解释为代码,因此希望它不言自明。首先,我在 XAML 中有一个带有以下内容的 silverlight 应用程序...

我的代码隐藏看起来像这样......(全部写在一个类文件中,以便您可以轻松地将其复制到您自己的项目中并编译)

所以让我解释一下......我开始编写一个通用的方法来创建一个具有SelectedItem属性的 ObservableCollection,这样当我将集合绑定到 ComboBox 时,我可以将 ComboBox 的SelectedItem属性绑定到它。

但是,由于某种原因,当 ComboBox 通过 ItemTemplate 有效嵌套时,它似乎不起作用。我实际上有一个列表列表,这个场景非常简单,以至于我不知道出了什么问题。

当您运行代码时,您会看到模板化的 ComboBox 确实选择了正确的项目,但它从未设置为 SelectedItem 尽管绑定。

我知道这很啰嗦,但是……有什么想法吗?

非常感谢

0 投票
1 回答
2149 浏览

c# - 无法更改 WinForms ComboBox 中的 DisplayMember

我正在尝试使用以下代码更改组合框的显示方式:

GeographicAddress 是一个具有返回字符串的 ShortCode 属性的类:

但是,在使用应用程序时,显示的值仍然来自 GeographicAddress.ToString()。在调试时,似乎 cboFind.DisplayMember = "ShortCode" 没有效果!DisplayMember 在执行该行之前和之后是 "" !

我错过了什么?

0 投票
2 回答
1078 浏览

vb.net - 记住最近输入的值并可以自动完成的组合框

我正在 VB.NET 中开发桌面搜索引擎我正在使用 ComboBox 来指定搜索查询(字符串)。我希望 ComboBox 记住并显示最近的查询。我还希望 ComboBox 在用户键入时尝试自动完成查询。

实现这一点的最佳方法是什么?

0 投票
5 回答
13315 浏览

wcf - 带有对象列表的数据绑定 Silverlight 组合框 - 工作但丑陋

我正在开发一个业务应用程序,将 Silverlight 用于 UI,将 WCF Web 服务用于后端。在数据库中,我有许多查找表。当 WCF 服务返回一个业务对象时,其中一个属性包含查找表中的整行,而不仅仅是外键,因此在 UI 中我可以显示查找表中的描述等内容,而无需再次调用服务。我目前要做的是提供一个绑定到整个查找值列表的组合框,并让它正确更新。我在此示例中处理的业务对象称为 Session,查找称为 SessionType。

下面是组合框的定义。DataContext 设置为 Session 的一个实例。我正在设置一个 ItemTemplate,因为组合框显示的不仅仅是字符串列表。

业务对象和查找表都通过 Web 服务异步加载。如果我什么都不做,组合框列表将填充 SessionTypes,但它不会显示来自 Session 的初始 SessionType 值。但是,如果更改组合框选择,则 Session 将使用正确的 SessionType 进行更新。

似乎正在发生的事情是 SelectedItem 绑定无法将 Session 中的 SessionType 与其在 SessionType 列表中的等价物相匹配。对象值相同,但引用不同。

我找到的解决方法是加载 Session 和 SessionTypes 列表,然后用 SessionTypes 列表中的对应更新当前 Session 的 SessionType。如果我这样做,那么组合框会正确显示。但是对我来说,这有一种不好的代码气味。因为一切都是异步加载的,所以我必须确定一切何时可用。我是这样做的:

在我的 Silverlight 用户控件的代码隐藏中:

所以基本上我有一个计数器,每次我从 web 服务取回数据时都会递增。因为我期待 3 件事(核心业务对象 + 2 个查找表),所以当该计数器达到 3 时,我匹配引用。

对我来说,这似乎很hacky。我宁愿看到组合框指定一个 ValueMemberPath 和 SelectedValue 以将所选项目与列表中的一个匹配。

任何人都可以看到更清洁的方法吗?这种情况在商业应用中很常见,所以我相信一定有一个很好的方法来做到这一点。

0 投票
3 回答
1912 浏览

c# - 取消 ComboBox 下拉关闭

如果用户选择特定项目,我想取消此操作,因为我不想强制用户再次打开下拉菜单。这可以做到吗?

0 投票
5 回答
46743 浏览

javascript - EXTJS 组合框在展开后未按 valueField 选择

我已经编写了一些运行良好的代码,但是我有一个奇怪的错误这里是一个例子......


请观看我的 COMBOBOX BUG 视频


就像我说的,每次触发 datachanged 时效果都很好 - 选择了正确的索引并显示了 displayField,但是每次我在组合框中键入一些文本之后,当“datachanged”触发时,它不会显示 displayField。相反,它显示来自我启动的 setValue 方法的值。

奇怪的是,如果我不输入文本并用鼠标更改选择,就没有错误。最后,这仅在我在组合框中键入文本时出现。

有没有人听说过这个错误,有解决方案或一些明智的建议?

编码 !

两个数据存储


谁首先返回这样的东西:

对于后者 :


一个Combobox

如果datachanged我设置了Combobox“CompteurCommunes”的新值: