尝试了下面的代码,但无法改变单元格的背景色.

DataGridViewRow row = new DataGridViewRow();
DataGridViewButtonCell dg_btn_cell = new DataGridViewButtonCell();
dg_btn_cell.Value = "Component" + i;
dg_btn_cell.Style.BackColor = Color.Red;
dg_btn_cell.Style.ForeColor = Color.Black;
dg_btn_cell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
row.Cells.Add(dg_btn_cell);

网上查了下资料,这里整理下,主要有3种方式,其中第三种方式比较理想.

方式1,绘制按钮,背景色改变了,但是按钮效果没有了.

来自链接https://bbs.csdn.net/topics/390579809

private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{if (e.ColumnIndex == 0){e.Handled = true;using (SolidBrush brush = new SolidBrush(Color.Red)){e.Graphics.FillRectangle(brush, e.CellBounds);}ControlPaint.DrawBorder(e.Graphics, e.CellBounds, Color.Yellow, ButtonBorderStyle.Outset);}
}

其他两种方式来自链接https://bbs.csdn.net/topics/390583120与https://stackoverflow.com/questions/586829/change-color-of-button-in-datagridview-cell

方式2,在Program.cs中屏蔽该段代码

//Application.EnableVisualStyles();

下面的代码执行后,单元格中button的背景色确实改变了,但是界面上的其他控件显示效果会受到影响,如System.Windows.Forms.Button将显示为经典的windows(我的系统为win10)按钮效果.

dg_btn_cell.Style.BackColor = Color.Red;

方式3 ,设置DataGridViewButtonCell的FlatStyle属性,Popup或者Flat.

DataGridViewRow row = new DataGridViewRow();
DataGridViewButtonCell dg_btn_cell = new DataGridViewButtonCell();
dg_btn_cell.Value = "Component" + i;
dg_btn_cell.FlatStyle = FlatStyle.Flat;//FlatStyle.Popup;
dg_btn_cell.Style.BackColor = Color.Red;
dg_btn_cell.Style.ForeColor = Color.Black;
dg_btn_cell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
row.Cells.Add(dg_btn_cell);

其他实现:https://stackoverflow.com/questions/586829/change-color-of-button-in-datagridview-cell中提到可以通过编写DataGridViewButtonCell的派生类,然后在派生类中重载paint方法中调用ButtonRenderer的DrawButton方法来定制DataGridViewButtonCell的外观效果.

ButtonRenderer链接 https://docs.microsoft.com/zh-cn/dotnet/api/system.windows.forms.buttonrenderer?redirectedfrom=MSDN&view=netframework-4.7.2

改变DataGridView中的DataGridViewButtonCell单元格的背景色.相关推荐

  1. datagridview java_仅更新datagridview中的一个单元格

    我正在编写一个Watch Window,它从 Serial Port 获取数据,并在 DataGridView 中显示变量info / value . 我有一个 Timer Event ,每隔500毫 ...

  2. 获取 Windows 窗体 DataGridView 控件中选定的单元格、行和列

    获取 DataGridView 控件中选中的单元格 使用 SelectedCells 属性. 注意 使用 AreAllCellsSelected 方法可避免显示可能具有大量数据的单元格. Visual ...

  3. Winform实现在DataGridView控件的单元格中添加多个控件

    Winform实现在DataGridView控件的单元格中添加多个控件 背景 实现思路 关键代码 完整代码下载 背景 DataGridView控件的列是支持TextBoxColumn.ComboBox ...

  4. 怎么在html的表格中加筛选,excel中表头合并单元格的筛选

    EXCEL中表头合并,怎么实现筛选数据? 亲,如下面的动画演示,选中第5行,点击菜单"数据","筛驯. excel中有合并单元格的行怎么才能筛选整个表格其中 直接对合并过 ...

  5. 合并单元格后打字换行_excel中合并了单元格以后往里面打字如果打两行字,怎么换行...

    点击查看excel中合并了单元格以后往里面打字如果打两行字,怎么换行具体信息 答:1.演示使用的软件为Excel电子表格,软件版本为office家庭和学生版2016. 2.为了演示如何在合并的单元格中 ...

  6. 如何删除UITableView中的空单元格? [重复]

    本文翻译自:How to remove empty cells in UITableView? [duplicate] This question already has an answer here ...

  7. 在GridView中设置每个单元格的数据

    在GridView中设置每个单元格的数据 今天做后台开发时,需要实现一个需求是在GridView渲染出来的显示数据的表格中增加一列数据:状态列.增加一列数据是比较简单的,但是,状态的表示在数据库中使用 ...

  8. 在stringgrid的drawcell事件处理过程中,给单元格赋值时,要用textout输出,不要像一般给cell[i,j]赋值那样。

    在stringgrid的drawcell事件处理过程中,给单元格赋值时,要用textout输出,不要像一般给cell[i,j]赋值那样.

  9. 计算机考试单元格,计算机等级考试技巧在Excel中如何对单元格进行设置?

    问:计算机等级考试技巧在Excel中如何对单元格进行设置? 考无忧小编解答: 步骤一:选中要设置的单元格,右击,出现下图对话框. 步骤二:点"设置单元格格式"功能,出现下图对话框, ...

最新文章

  1. 将SVN与BUG跟踪管理集成
  2. 科大星云诗社动态20210323
  3. php tongjiapi 使用_Kayako REST API使用详解一
  4. Nginx 下载限速
  5. muduo学习笔记 - 第1章 C++多线程系统编程
  6. spring事务管理-概念部分
  7. 设计模式------观察者模式
  8. 如何选择一款优秀的儿童读写台灯?
  9. 微服务探索与实践—服务注册与发现
  10. 半波对称振子方向图_画好服装款式图的五个要点
  11. $ORACLE_HOME变量值末尾多“/”惹的祸
  12. linux 内核 网卡驱动 移植,linux内核移植步骤添加dm9000网卡驱动(设备树).docx
  13. Tricks(十九)—— 获得 list of lists 每一列的最大最小值
  14. cnpm 没反应_世界上“最蠢”的鱼, 被吃了一半还没反应, 但永远不会灭绝
  15. Unity分屏之使用TUIO实现互动投影
  16. 如何查看谷歌地球卫星地图的拍摄时间
  17. 软工网络15团队作业4——Alpha阶段敏捷冲刺之Scrum 冲刺博客(Day2)
  18. dwf是什么格式文件
  19. 【学习方法】 高效记忆秘籍,背书轻松开挂!3个方法专治记不住忘得快,让你像喝水一样高效学习!
  20. Mac自带Safari浏览器如何清除缓存

热门文章

  1. 英文数字汇总,KMGT,毫微纳
  2. 实现阿里云OSS文件上传
  3. 使用python中py2neo包连接neo4j(安装,连接,成功解决)
  4. 【谷歌浏览器 Google Chrome安装失败 糟糕!安装失败。错误代码:0x80070057】解决方法——应用商店安装
  5. 【唐老狮】C#——结构体和类的区别
  6. HTML 访问本地 Markdown 文件
  7. MYSQL数据库四种储存引擎
  8. 轻量级关系数据库SQLite的安装和SpringBoot整合
  9. 高物实验报告计算机模拟高分子,高分子物理与化学国家重点实验室-苏州大学学术交流报告会举行...
  10. 目前所有的ANN神经网络算法大全