如何获取datagridview单元格的Style.BackColor

How to get the Style.BackColor of a datagridview cell

使用vs2010 vb.net,我有一个DataGridView(dgv),在这里我根据某个值设置单元格的背景色。这个特定的单元格不存储任何信息,因此我不能使用该单元格中的数据来确定背景色。

我目前的尝试是完全失败的,而msdn只是"设置"而不是"获取"单元格的背景色。

我试过的代码"

1
2
3
if dgvNotes.Rows(clickedCell.RowIndex).Cells(1).Style.BackColor.ToString ="Red" then

if dgvNotes.Rows(clickedCell.RowIndex).Cells(1).Style.BackColor = Color.Red then

我找不到关于这个主题的很多信息,因为在不同的编码站点上的大多数文章都集中在"设置"背景色上。

是否有任何方法可以在填充DGV后确定单元格背景颜色?谢谢


写入单元格单击事件

1
2
3
4
5
// using vb.net
System.Drawing.Color c = dgvNotes.Rows(e.RowIndex).Cells(1).Style.BackColor;

//using c#
System.Drawing.Color c = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.BackColor;


在Click事件中

1
if dgvNotes.Rows(clickedCell.RowIndex).Cells(1).Style.BackColor = Color.Red then


这对我不起作用

我有设置单元格颜色和其他属性的代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
    public static void SetDgvHeader(DataGridView dgv,DataGridView clonedgv,string tarih,string[] dgv_Headers)
    {
        dgv.Rows.Clear();
        dgv.ColumnCount = dgv_Headers.Length;
        dgv.RowHeadersVisible = false;
        int dayNbr = int.Parse(datenbr.txt);
        dgv.Rows.Add(dayNbr);
        for (int i = 0; i < dgv_Headers.Length; ++i)
        {
            if (i == 1 || i == 3 || i == 5)
            {
                dgv.Columns[i].Width = 20;
                dgv.Columns[i].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            }
            else
            {
                dgv.Columns[i].Width = 78;
                clonedgv.Columns[i].Width = 78;
            }
            dgv.Columns[i].HeaderText = dgv_Headers[i];
            dgv.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable;
            dgv.Columns[i].ReadOnly = true;
        }
        for (int i = 0; i < dayNbr; ++i)
        {
            dgv.Rows[i].Height = 20;
            for (int a = 0; a < dgv_Headers.Length; ++a)
            {
                dgv.Rows[i].Cells[a].Style.BackColor = Color.White;
                dgv.Rows[i].Cells[a].Value ="";
           }
        }
        dgv.Height = (dayNbr* dgv.Rows[0].Height) + 25;
        dgv.AllowUserToAddRows = false;

当我评论添加白色的行时,我得到了这个

enter image description here

如果我抑制评论的话

我明白了

enter image description here