свойства применяются только после щелчка мыши в сетке данных в C # winforms - PullRequest
2 голосов
/ 14 июля 2011

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

Используемый код

    private void dataGridView1_RowValidated(object sender, DataGridViewCellEventArgs e)
    {
        for (int i = 0; i < 5; i++)
        {
            int j = 6;
            DataGridViewCellStyle CellStyle = new DataGridViewCellStyle();
            CellStyle.ForeColor = Color.Red;
            dataGridView1[j, i].Style = CellStyle;
        }
    }

1 Ответ

1 голос
/ 14 июля 2011

Удалите этот код из dataGridView1_RowValidated и добавьте его в событие Load вместо:

Добавьте этот код в конструктор формы:

public Form1()
{
    InitializeComponents();

    this.Load += OnFormLoad;
    this.dataGridView1.Sorted += OnDataGridSorted;
}

private void OnFormLoad(object sender, EventArgs e)
{
    UpdateDataGridViewColor();
}

private void OnDataGridSorted(object sender, EventArgs e)
{
    UpdateDataGridViewColor(); 
}

private void UpdateDataGridViewColor()
{
    for (int i = 0; i < 5; i++)
    {
        int j = 6;
        DataGridViewCellStyle CellStyle = new DataGridViewCellStyle();
        CellStyle.ForeColor = Color.Red;
        dataGridView1[j, i].Style = CellStyle;
    }
}

Обратите внимание, что вы можете добавить событие Load формы двойным щелчком мыши по конструктору форм.

Редактировать: Вы указали в комментариях, что при нажатии на столбец для сортировки применяемый цвет будет удален. исправить это событие добавления this.dataGridView1.Sorted += OnDataGridSorted;, чтобы при выполнении сортировки применялся новый стиль. Код выше обновлен. «Кстати, я не проверял, до меня, если это не сработало ..»

...