Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Devexpress ListBoxControl添加具有多种颜色的项目_C#_.net_Winforms_Devexpress - Fatal编程技术网

C# Devexpress ListBoxControl添加具有多种颜色的项目

C# Devexpress ListBoxControl添加具有多种颜色的项目,c#,.net,winforms,devexpress,C#,.net,Winforms,Devexpress,我正在寻找一种解决方案,在ListBoxControl中添加一个项,在同一行中添加不同颜色的 例如:“进口公司[X公司]”-我需要灰色的“进口公司”,其余的是黑色的 此外,如果我有错误,我需要(红色) 我找不到(如果存在)添加Html文本的方法 谢谢您可以通过以下属性激活ListBoxControl中的功能: listBoxControl.AllowHtmlDraw = DevExpress.Utils.DefaultBoolean.True; listBoxControl.Items.AddR

我正在寻找一种解决方案,在
ListBoxControl
中添加一个
项,在同一
行中添加不同颜色的

例如:“进口公司[X公司]”-我需要灰色的“进口公司”,其余的是黑色的
此外,如果我有错误,我需要(红色)

我找不到(如果存在)添加
Html
文本的方法

谢谢

您可以通过以下属性激活ListBoxControl中的功能:

listBoxControl.AllowHtmlDraw = DevExpress.Utils.DefaultBoolean.True;
listBoxControl.Items.AddRange(new object[] {
    "Color <color=Red>Red</color>",
    "Color <color=Green>Green</color>",
    "Color <color=Blue>Blue</color>"
});
listBoxControl.AllowHtmlDraw=DevExpress.Utils.DefaultBoolean.True;
listBoxControl.Items.AddRange(新对象[]){
“红色”,
“绿色”,
“蓝色”
});
您可以通过以下属性激活ListBoxControl中的功能:

listBoxControl.AllowHtmlDraw = DevExpress.Utils.DefaultBoolean.True;
listBoxControl.Items.AddRange(new object[] {
    "Color <color=Red>Red</color>",
    "Color <color=Green>Green</color>",
    "Color <color=Blue>Blue</color>"
});
listBoxControl.AllowHtmlDraw=DevExpress.Utils.DefaultBoolean.True;
listBoxControl.Items.AddRange(新对象[]){
“红色”,
“绿色”,
“蓝色”
});

另一种方法是使用如下方法实现
列表框的
DrawItem
事件:

    internal static void DrawListBox(object sender, DevExpress.XtraEditors.ListBoxDrawItemEventArgs e)
    {
        e.Cache.DrawString(e.Item.ToString(), e.Appearance.Font, new SolidBrush(Color.White),
            e.Bounds, e.Appearance.GetStringFormat());
        e.Handled = true;
    }
在这种情况下,所有项目都以
颜色.White
绘制


当然,您可以通过
ListBoxDrawItemEventArgs

中包含的属性测试您的值。另一种方法是使用如下方法实现
ListBox
DrawItem
事件:

    internal static void DrawListBox(object sender, DevExpress.XtraEditors.ListBoxDrawItemEventArgs e)
    {
        e.Cache.DrawString(e.Item.ToString(), e.Appearance.Font, new SolidBrush(Color.White),
            e.Bounds, e.Appearance.GetStringFormat());
        e.Handled = true;
    }
在这种情况下,所有项目都以
颜色.White
绘制


当然,您可以通过
ListBoxDrawItemEventArgs

中包含的属性来测试您的值,并且如何在列表中有两种颜色(一种用于信息,一种用于错误)?我所做的是在开始时输入项目“警告”、“信息”和“错误”,然后输入类似
if的内容(例如Item.ToString().BeginsWith(“信息”)){//Coloring}e.Item.ToString().Remove(0,4)
。希望能有帮助!没关系,没有测试过,但是DmitryG的响应更好,你可以根据自己的喜好创建行,选择颜色、字体大小等。无论如何,谢谢你和+1,我怎么能在列表中有两种颜色(一种用于信息,一种用于错误)?我要做的是在项目中添加“警告”,开始时是“Info”和“Error”,然后是类似于
if(e.Item.ToString().BeginsWith(“Info”){//Coloring}e.Item.ToString().Remove(0,4)
。希望有帮助!没关系,没有测试它,但DmitryG的响应更好,您可以根据自己的喜好创建行,选择颜色、字体大小等。总之,谢谢,+1