Страница 1 из 1

Color Propery

Добавлено: 19 ноя 2008, 21:55
rover
Здравствуйте!
Есть задача - есть таблица, и в ней поле COLORVALUE типа INT, где хранится цвет в RGB формате. Соответственно, каждая строка отчета должна быть этого цвета.
Решаю так: под обычные TEXTBOXES подложена PANEL, цвет которой меняется в зависимости от значения поля COLORVALUE. Вот обработчик BEFOREPRINT:

Panel1.Brush = new StiSolidBrush(Color.FromArgb(0xFF000000 + MyData.ColorValue))

Но при компилятции вылетает ошибка:
cannot convert long to int

В чем я неправ?

Thnx

Color Propery

Добавлено: 19 ноя 2008, 22:33
rover
I found solution. I had to use 0x7F000000 instead of 0xFF000000

Color Propery

Добавлено: 20 ноя 2008, 01:26
Ivan
Здравствуйте!

Если вы используете значение 0x7F000000, вы получаете полупрозрачный цвет.
Лучше используйте следующее выражение:

Panel1.Brush = new StiSolidBrush(Color.FromArgb(0xFF, Color.FromArgb(MyData.ColorValue)))

Спасибо.

Color Propery

Добавлено: 20 ноя 2008, 16:28
rover
Thnx. That's much better...

Color Propery

Добавлено: 22 ноя 2008, 18:05
Ivan
Здравствуйте.

Дайте нам знать, если вам еще понадобится помощь.

Спасибо.