【问题标题】:How to get the Style.BackColor of a datagridview cell如何获取 datagridview 单元格的 Style.BackColor
【发布时间】:2014-07-13 17:32:56
【问题描述】:

使用 VS2010 VB.NET,我有一个 datagridview (dgv),我根据某个值设置单元格的背景颜色。这个特定的单元格不存储任何信息,因此我不能使用该单元格中的数据来确定背景颜色。

我目前的尝试完全失败了,MSDN 只针对“设置”而不是“获取”单元格的背景颜色。

我试过的代码”

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 后确定单元格背景颜色? 谢谢

【问题讨论】:

    标签: datagridview get cell background-color


    【解决方案1】:

    写入单元格点击事件

    // 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;
    

    【讨论】:

    • 感谢您的回复,这也是我一直在寻找的答案!!。我修改了代码,使其对 VB 更友好。 Dim CellBkColor As System.Drawing.Color = dgvNotes.Rows(e.RowIndex).Cells(1).Style.BackColor MsgBox(CellBkColor.ToString)
    【解决方案2】:

    在点击事件中

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

    【讨论】:

      【解决方案3】:

      这对我不起作用

      我有这段代码用于设置单元格颜色和其他属性

          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;
      

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

      如果我禁止评论斜线

      我明白了

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-06
        • 1970-01-01
        • 2019-09-30
        • 1970-01-01
        相关资源
        最近更新 更多