c# Winforms:自定义DataGridView选定的gridcolor
本文关键字:gridcolor DataGridView Winforms 自定义 | 更新日期: 2023-09-27 18:17:18
我有3列3行DataGridView
。如果用户选择了一行,我想让那一行的网格改变颜色。我对c#完全陌生,我不知道如何才能实现我的目标。请帮帮我。由于
我理解您正在询问关于修改单元格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;