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; |
当我评论添加白色的行时,我得到了这个
如果我抑制评论的话
我明白了