更改列的背景颜色在网格(Change the background color of a colum

2019-09-23 03:03发布

我有以下形式,我想换一列,基于其他列的值的背景色;

在橙列,而不是显示橙色背景,我想单元格颜色是红色,绿色和蓝色场的RGB组合下的颜色属性部分。

Answer 1:

比方说,而你只需要改变控制的背景被命名为FirstFieldControl。 其设置AutoDeclaration属性YesBackgroundColorWindow background

现在,你需要重写displayOption方法对你的数据源,如:

public void displayOption(Common _record, FormRowDisplayOption _options)
{
    YourTable   yourTable   = _record;
    int         color;
    ;

    switch (yourTable.Name)
    {
         case 'Red' :
                 color = WINAPI::rgbCon2int([255, 0, 0]);
                 break;
         case 'Green' :
                 color = WINAPI::rgbCon2int([0, 255, 0]);
                 break;
         case 'Blue' :
                 color = WINAPI::rgbCon2int([0, 0, 255]);
                 break;
    }

    if (color)
    {
        _options.backColor(color);
        _options.affectedElementsByControl(FirstFieldControl.id());
    }
    else
    {
        super(_record, _options);
    }
}

这只是一个例子给你一个想法 - 不要复制粘贴:)

它更容易存储在表中的颜色值,则该代码会好得多。

PS。如果您要更改颜色运行时,你可能需要使用下面的一段代码,以刷新记录:

yourTable_ds.clearDisplayOption(yourTable);
yourTable_ds.refresh();


文章来源: Change the background color of a column in a grid