c# Winforms:自定义DataGridView选定的gridcolor

本文关键字:gridcolor DataGridView Winforms 自定义 | 更新日期: 2023-09-27 18:17:18

我有3列3行DataGridView。如果用户选择了一行,我想让那一行的网格改变颜色。我对c#完全陌生,我不知道如何才能实现我的目标。请帮帮我。由于

c# Winforms:自定义DataGridView选定的gridcolor

我理解您正在询问关于修改单元格GridLines的外观并单独

根据MSDN, 可能的。然而,这似乎需要付出很大的努力。您需要对DataGridview进行子类化,并对示例代码进行大量修改才能动态地工作。在玩弄了一段时间后,我觉得不值得。我建议用另一种方式来标记选择。

查看DataGridView类的属性,您可以选择在DataGridView.GridColor属性中设置网格颜色。

获取或设置分隔DataGridView单元格的网格线的颜色。

在下面的示例

:

dataGridView1.GridColor = SystemColors.ActiveBorder;

您可以使用DataGridView更改它。GridColor财产。这将改变网格线的颜色。参见链接- DataGridView。GridColor

 dataGridView1.GridColor = SystemColors.Blue;

这将改变网格中的每一行。您能指定要更改的行中的哪一行吗?我想你只需要这一行的线条。如果您只想更改行线颜色,那么您可以使用以下代码:

dataGridView1.Rows[0].DefaultCellStyle.BackColor = Color.Red;
dataGridView1.Rows[0].DefaultCellStyle.ForeColor = Color.White;

下面你可以看到它在CellClick事件中使用的行:

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
    DataGridView dgv = sender as DataGridView;
    if (dgv == null)
        return;
    if (dgv.CurrentRow.Selected)
    {
        dataGridView1.Rows[0].DefaultCellStyle.BackColor = Color.Red;
        dataGridView1.Rows[0].DefaultCellStyle.ForeColor = Color.White;
    }
}

DataGridViewRow dgRow = dataGridView1.Rows[e.RowIndex];
dgRow.DefaultCellStyle.BackColor = Color.Red; 
dgRow.DefaultCellStyle.ForeColor = Color.Yellow;