Как установить цвет градиента для каждой строки в datagridview после привязки данных - PullRequest
1 голос
/ 20 июня 2011

Я хочу установить цвет градиента для каждой строки в datagridview после привязки данных (я имею в виду в событии DataBoundCompleted)

Я вижу эти статьи, но все они предназначены для выбора строки. Я хочу установить градиент для каждой строки.

DataGridView, добавить уникальный градиент для каждой строки

Как: настроить внешний вид строк в элементе управления Windows Forms DataGridView

спасибо

Ответы [ 2 ]

2 голосов
/ 20 июня 2011

Второй пример, на который вы ссылаетесь - именно тот, который вам нужен.Событие DataGridView.RowPrePaint запускается для каждой строки в сетке.

В примере на странице документации для этого события выполняется только пользовательская визуализация выбранной строки, поскольку она включает следующую проверку.

// Determine whether the cell should be painted
// with the custom selection background.
if ((e.State & DataGridViewElementStates.Selected) ==
            DataGridViewElementStates.Selected)

Снимите этот флажок, и вы увидите, что у каждой строки есть собственный фон.

0 голосов
/ 18 июня 2014

Я не знаю, поможет ли это кому-нибудь, кто приземлится здесь после поиска в Google, я основал это на каком-то vb-коде, найденном на другом форуме:

using System;
using System.Windows.Forms;
using System.Drawing;

namespace CPS
{
    class gradientGrid : DataGridView
    {

        protected override void PaintBackground(System.Drawing.Graphics graphics, System.Drawing.Rectangle clipBounds, System.Drawing.Rectangle gridBounds)
        {
            base.PaintBackground(graphics, clipBounds, gridBounds);

            System.Drawing.Drawing2D.LinearGradientBrush b = new System.Drawing.Drawing2D.LinearGradientBrush(clipBounds, Color.CadetBlue, Color.AntiqueWhite, System.Drawing.Drawing2D.LinearGradientMode.Horizontal);
            graphics.FillRectangle(b, clipBounds);
        }
    }
}

после того, как вы создали это какотдельный класс он отображается в вашем (VS2010) наборе инструментов, и вы перетаскиваете его в форму ...

Этот код работает для всего представления таблицы данных, поэтому для выполнения каждой строки вы можете использовать RowPrePaint событие ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...