Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > закрасить ячейку DataGridView


Автор: _hunter 12.2.2007, 19:04
Добрый день.

Пытаюсь закрасить ячейку DataGridView'а:
Код

        private void dgData_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
        {
            if (e.RowIndex < 0 || e.RowIndex >= dgData.Rows.Count)
                return;
            if (!dgData.Rows[e.RowIndex].Selected)
                return;

            e.Graphics.FillRectangle(new SolidBrush(Color.BlueViolet), new Rectangle(e.CellBounds.X + 2, e.CellBounds.Y + 2, e.CellBounds.Width - 3, e.CellBounds.Height - 3));
        }

но никакого BlueViolet фона я не вижу smile хотя выполнение сюда приходит...
Почему?
(из обработчиков присутствует только dgData_CellFormatting)

С уважением...

Автор: mr.DUDA 12.2.2007, 23:28
А в отладке доходит до FillRectangle ? Второй вопрос: e.CellBounds в каких координатах ? Надо бы проверить прямоугольник, который заливается - сначала создать Rectangle и поместить во временную переменную, и в отладчике проверить какой там прямоугольник.

Автор: _hunter 13.2.2007, 11:37
доходит.

я, оказывается, про e.Handled забыл...

Автор: Alexsar 8.3.2007, 00:54
а куда надо добавить e.Handled и что делает эта функция?

Автор: mr.DUDA 8.3.2007, 11:40
Цитата(Alexsar @  7.3.2007,  23:54 Найти цитируемый пост)
а куда надо добавить e.Handled и что делает эта функция?

в обработчик события CellPainting нужно где-нибудь добавить:

Код
e.Handled = true;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)