gpt4 book ai didi

c# - Infragistics UltraGrid : GroupBy row ForeColor changes when clicked

转载 作者:太空宇宙 更新时间:2023-11-03 11:20:35 29 4
gpt4 key购买 nike

在 C# 的 WinForms 中使用 Infragistics UltraGrid:

我有条件地更改网格上某些 GroupByRow 的 ForeColor 的颜色。当用户单击该行时,颜色会变回事件/选定/热跟踪/任何颜色,直到他们单击其他颜色。我希望我有条件地着色的行的文本颜色永远不会改变。这是我设置颜色的方式:

Row.Appearance.ForeColor = System.Drawing.Color.Orange;

知道如何让它在单击该行时保持不变吗?

谢谢!

最佳答案

这可以通过绘制过滤器来设置描述的前景色来完成,因为这将始终适用。

一个简单的例子是下面的绘制过滤器,它将根据具有偶数橙色整数值的行进行分组:

public class GroupByRowDrawFilter:IUIElementDrawFilter
{
public bool DrawElement(DrawPhase drawPhase, ref UIElementDrawParams drawParams)
{
GroupByRowDescriptionUIElement element = (GroupByRowDescriptionUIElement)drawParams.Element;
if (element.GroupByRow.Value is int)
{
int value = (int)element.GroupByRow.Value;
if (value % 2 == 0)
{
drawParams.AppearanceData.ForeColor = Color.Orange;
}
}

return false;
}

public DrawPhase GetPhasesToFilter(ref UIElementDrawParams drawParams)
{
if (drawParams.Element is GroupByRowDescriptionUIElement)
return DrawPhase.BeforeDrawElement;
return DrawPhase.None;
}
}

要应用绘图过滤器,请使用以下代码行:

this.ultraGrid1.DrawFilter = new GroupByRowDrawFilter();

请注意,此方法要求条件位于绘制过滤器中。如果这对您不起作用,您可以修改当前设置 ForeColor 的逻辑以设置 GroupByRow 的 Tag 属性,然后检查绘制过滤器中的 Tag 属性以确定是否需要应用您的逻辑。

关于c# - Infragistics UltraGrid : GroupBy row ForeColor changes when clicked,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11142675/

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