Невозможно изменить цвет столбца во время выполнения, если его цвет по умолчанию "Прозрачный"

Я использую следующий код для изменения цвета определенных столбцов, когда открываю окно даты для редактирования:

dw_1.object.description.Background.Color = RGB(255, 255, 255)

Это прекрасно работает до тех пор, пока фоновый цвет по умолчанию не был "прозрачным" в рисователе. Если он начинается прозрачным, этот код ничего не делает.

Как сделать так, чтобы столбец был прозрачным, но измените его на белый, а затем верните обратно?

Спасибо,

2 ответа

Решение

Изменить background.mode собственность на 0 удалить прозрачность и взять background.color в учетную запись.

Руководство говорит в Background.property DataWindow object property запись:

Прозрачный фон
Если Background.Mode прозрачен (1), Background.Color игнорируется.

Например, установите для белого цвета столбца задний цвет и установите для его выражения заднего цвета значение 553648127,

После этого вы можете изменить его на Modify

// To white
dw_1.Modify("description.Background.Color='16777215~t16777215'")
// To transparent
dw_1.Modify("description.Background.Color='16777215~t553648127'")

Может быть dw_1.SetRedraw(true) будут необходимы.

Вы также можете создать скрытый столбец (desc_bc например), установите его имя в выражение для backcolor и измените его значение вместо вызова Modify.

Другие вопросы по тегам