C# 在组合框中隐藏文本
我有一个WinForms组合框,其中datasouce设置为自定义类的列表。我将这些项目显示为颜色(基于类中的属性),并且只希望显示颜色(即无文本)。我通过DrawItem事件在下拉列表中将项目显示为颜色,但这不适用于组合框本身(下拉列表以外的部分)。我尝试过将前景颜色更改为透明,但也没有成功。我真正想要的是一个C# 在组合框中隐藏文本,c#,winforms,combobox,C#,Winforms,Combobox,我有一个WinForms组合框,其中datasouce设置为自定义类的列表。我将这些项目显示为颜色(基于类中的属性),并且只希望显示颜色(即无文本)。我通过DrawItem事件在下拉列表中将项目显示为颜色,但这不适用于组合框本身(下拉列表以外的部分)。我尝试过将前景颜色更改为透明,但也没有成功。我真正想要的是一个comboBox.DisplayMember=“无”或类似的东西 实现这一目标的最佳方式是什么 编辑:所以经过一番修改,我找到了一个解决方案:向类中添加一个“None”属性,如下所示:
comboBox.DisplayMember=“无”代码>或类似的东西
实现这一目标的最佳方式是什么
编辑:所以经过一番修改,我找到了一个解决方案:向类中添加一个“None”属性,如下所示:
public string None
{
get
{
return "";
}
}
然后我就可以执行comboBox.DisplayMember=“None”代码>就像我之前提到的。但我认为问题仍然存在:有没有更好的方法?您可以使用DrawItem
事件将ComboBox控件作为颜色选择器来显示和选择颜色,而且ComboBox控件还有一个名为DrawMode
的属性,用于确定操作系统或代码是否将处理图形列表中项目的名称。必须使用属性窗口将此属性设置为OwnerDrawFixed
,才能调用DrawItem
事件实现
您可以阅读有关的更多信息。您可以使用DrawItem
事件将ComboBox控件作为颜色选择器来显示和选择颜色。ComboBox控件还有一个名为DrawMode
的属性,用于确定操作系统或代码是否将处理列表中项目的绘制。必须使用属性窗口将此属性设置为OwnerDrawFixed
,才能调用DrawItem
事件实现
您可以阅读更多关于的信息,因为我的“伪解决方案”似乎是这里最好的解决方案,我将它复制到这里:
由于我的comboBox中的项属于自定义类,因此我向该类添加了另一个属性:
public string None
{
get
{
return "";
}
}
我设置了comboBox.DisplayMember=“无”代码>。这实现了我一直在寻找的结果因为我的“伪解决方案”似乎是这里最好的解决方案,我将它复制到这里:
由于我的comboBox中的项属于自定义类,因此我向该类添加了另一个属性:
public string None
{
get
{
return "";
}
}
我设置了comboBox.DisplayMember=“无”代码>。这达到了我想要的结果您想显示为空显示成员吗?@WillyDavidJr-Yes。我希望每个组合框项目的文本都为空这可能是一个愚蠢的问题,但是你是否尝试将前景设置为白色而不是透明?啊,尝试过。。。选择颜色保持不变。是否显示为空显示成员?@WillyDavidJr是。我希望每个组合框项目的文本都为空这可能是一个愚蠢的问题,但是你是否尝试将前景设置为白色而不是透明?啊,尝试过。。。选择颜色保持不变。是的,我已经知道了(参考了同一篇文章)。但这是我的问题:(我不想看到文本)是的,我已经知道了(引用了同一篇文章)。但我的问题是:(我不想让文本可见)