【问题标题】:How to disable items based on condition in combo box?如何根据组合框中的条件禁用项目?
【发布时间】:2013-07-17 11:02:47
【问题描述】:

我正在用 C# 开发一个 Windows 应用程序。

用户必须在组合框中选择一些列出的值。这些值将被添加到数据库中。当同一个用户登录并选择组合框时,已经选择的值应该是可见的,但不应该被选中....

我参考了各种网站。所有说明要更改现有值的颜色....但这还不够。我需要禁用这些值...有什么选择吗?

注意:我正在从数据库表中填充组合框项。

【问题讨论】:

  • 那么你能不过滤掉这些项目而不显示它们吗?
  • 不,@V4Vendetta,我需要显示所有这些项目。但是要禁用现有项目....
  • 当用户选择现有值时会发生什么?
  • 对于这种情况,为什么您使用组合框、两个列表框和两个带有 ">" "
  • 可以解释一下,如果用户无法选择它们,为什么需要显示它们?我的意思是我知道有一些上下文......但在你的情况下,组合框可能不是好的选择

标签: c# combobox windows-applications


【解决方案1】:

您可以将ComboBox.SelectedIndex = -1设置为您想要的值;

代码未经测试,但类似这样的东西会帮助你

if (combobox.selectedIndex == (Index of your value))
{
    combobox.selectedIndex = -1;
}

这样,如果您尝试选择该项目,它会将选定索引设置为 -1,您将无法选择该项目。

【讨论】:

  • 它正在工作......但我需要一些东西来禁用(即)即使用户可以选择现有项目。
【解决方案2】:

以下链接可能对您有所帮助

Create WinForms ComboBox with non-selectable items

当来自 db 的出价值将可选属性设置为 true 或 false 时,在 selectedindexchanged 事件中将 item 的 selectedindex 设置为 -1。

如果对你有帮助,别忘了标记为答案。

注意:在执行此操作之前,请确保需要显示项目。如果不需要,只需过滤它们并绑定剩余的值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-24
    • 2017-09-11
    • 1970-01-01
    • 2015-09-30
    • 1970-01-01
    相关资源
    最近更新 更多