首页
学习
活动
专区
圈层
工具
发布

如何更改datagridview选定的行背景颜色?

更改DataGridView选定行背景颜色的方法

基础概念

DataGridView是Windows Forms中的一个强大控件,用于显示和编辑表格数据。默认情况下,选中的行会以系统默认的高亮颜色显示,但开发者可以自定义这个外观。

实现方法

方法1:使用RowPrePaint事件

代码语言:txt
复制
private void dataGridView1_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
{
    if (dataGridView1.Rows[e.RowIndex].Selected)
    {
        dataGridView1.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.LightBlue;
        dataGridView1.Rows[e.RowIndex].DefaultCellStyle.SelectionBackColor = Color.LightBlue;
    }
    else
    {
        dataGridView1.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.White;
        dataGridView1.Rows[e.RowIndex].DefaultCellStyle.SelectionBackColor = SystemColors.Highlight;
    }
}

方法2:设置DefaultCellStyle属性

代码语言:txt
复制
// 设置选中行的背景色
dataGridView1.DefaultCellStyle.SelectionBackColor = Color.LightGreen;
dataGridView1.DefaultCellStyle.SelectionForeColor = Color.Black;

// 如果需要为特定列设置不同的颜色
dataGridView1.Columns["ColumnName"].DefaultCellStyle.SelectionBackColor = Color.Orange;

方法3:使用CellFormatting事件(更灵活的控制)

代码语言:txt
复制
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
    if (dataGridView1.Rows[e.RowIndex].Selected)
    {
        e.CellStyle.BackColor = Color.LightGoldenrodYellow;
        e.CellStyle.ForeColor = Color.Black;
    }
}

注意事项

  1. 性能考虑:对于大型数据集,频繁重绘可能会影响性能,建议使用方法2的静态设置。
  2. 多选模式:如果启用了多选模式(SelectionMode=FullRowSelect),上述方法对所有选中行都有效。
  3. 颜色选择:选择对比度足够的颜色以确保文本可读性。
  4. 恢复默认:要恢复系统默认颜色,可以设置为SystemColors.Highlight

完整示例

代码语言:txt
复制
// 在Form_Load或初始化代码中
dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
dataGridView1.DefaultCellStyle.SelectionBackColor = Color.LightCoral;
dataGridView1.DefaultCellStyle.SelectionForeColor = Color.Black;

// 如果需要根据条件动态改变颜色
dataGridView1.CellFormatting += (sender, e) => 
{
    var grid = sender as DataGridView;
    if (grid.Rows[e.RowIndex].Selected)
    {
        e.CellStyle.BackColor = Color.LightSkyBlue;
        e.CellStyle.ForeColor = Color.DarkBlue;
    }
};

应用场景

  • 提高选中行的视觉辨识度
  • 实现特定业务逻辑的视觉反馈
  • 创建更符合应用主题的UI风格
  • 突出显示重要数据行

通过以上方法,您可以灵活地控制DataGridView中选中行的外观,满足不同的UI设计需求。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何更改 Ubuntu 的终端的颜色

更改你的 Ubuntu 的终端的颜色 这些步骤类似于 如何更改终端的字体和大小。你必须找到自定义颜色的选项,就是这样的简单。...image.png 如你在上面的屏幕截图中能够注意到的那样,你可以选择使用一些内置的颜色方案,也可以 通过更改文本和背景的默认颜色选项 来完成自定义颜色方案。...更改终端的颜色的其它的方法 这里有其它的几种更改 Ubuntu 的终端的颜色的方法: 更改主题 大多数的 Ubuntu 主题都有它们自己的终端的颜色的实现,并且其中的一些实现看起来非常漂亮。...这里是如何针对 Ant 和 Orchis 主题进行更改终端的颜色方案: image.png 你可以选择一种黑暗主题,接下来你的主题将会变成黑色。不需要担心选择颜色方案的问题。...依据你的壁纸选择终端颜色 如果你不想手动自定义你的终端的颜色,你可以使用 Pywal 。使用这个方便的 Python 工具,你的计算机能够随着你的每一张壁纸来 更改你的终端的颜色方案 。

17.8K10
  • echarts如何设置背景图的颜色

    图片.png 公司的业务涉及到统计图的有很多,最近一直echarts里面踩各种坑,感觉应该建立一个echarts专题才对,前端的东西博大精深,无论在哪一个知识点,只要细细深究,都是别有一方天地在等待,随着需求的不同...,代码改动的也自然会很多,静下心来,总结好,下次在遇到就会变的得心应手无所不能了。...在网站上看到的研究文档: http://echarts.baidu.com/api.html 其实这是很简单的东西,但对于不懂的人来说,却是一个小小为难了一下的坎,对于明白的人来说,是一个简单的不能再简单的属性了...坚持总结工作中遇到的技术问题,坚持记录工作中所所思所见,欢迎大家一起探讨交流。

    4.8K10

    【愚公系列】2023年11月 Winform控件专题 DataGridView控件详解

    在CellStyle编辑器中,可以设置奇数行和偶数行的背景颜色、字体、前景颜色等样式属性。也可以选择使用其他样式。...= Color.Black;这段代码将DataGridView控件的奇数行的背景颜色设置为浅灰色,字体设置为Tahoma字体,加粗,前景颜色设置为黑色。...例如,对于某些行,可以设置不同的背景颜色或字体颜色等。...具体步骤如下:打开Winform项目,拖拉一个DataGridView控件到窗体中;添加要显示的列,设置列的属性;设置RowTemplate属性,例如设置行背景颜色:dataGridView1.RowTemplate.DefaultCellStyle.BackColor...(new object[] { "2", "Lucy", "Female" });此时,第一行和第二行的背景颜色都将显示为红色。

    3.8K11

    解决Mac无法成功安装pygame,无法更改窗口背景颜色,不显示飞船图像的问题

    是官网下载安装的), 然后通过homebrew的方法将python跟pygame必须完全用终端安装的方法解决(命令书上有,但是你将可能遇到下面的问题)。...但是,在接下来的编写过程中,会出现新的问题。pygame窗口无法更改背景色,无法显示飞船图像。...通过测试一系列方法,如重新去官网安装python(什么32位跟64位必须匹配之类的),通过命令直接安装python(书上的homebrew方法),更改代码中的pygame.event.get(),或者安装低版本...这个问题出现的原因有两点,一是mac系统的兼容性问题(降低Mac系统的方法还是不要尝试了),二是如果按照这本书的安装教程先安装homebrew 再通过brew install pytion的方法并不适合现在版本的...这里我们用到的是anaconda(就当是一个很全的python软件,安装好后可以省去你安装其他库的步骤,其实我刚开始也是拒绝的,因为是英文)。

    5.5K00

    C#二十八 数据绑定

    如何使用DataGridView Ø DataGridView常用属性和方法 Ø 简单绑定 ​5.1 DataGridView控件​ 在项目开发中,怎么样将数据库的中数据显示到界面上呢...当前单元格 CurrentRow 当前单元格的行 SelectedRows 用户选定的行 DataMember 数据源绑定的数据集,这里是数据表的名称 DefaultCellStyle 单元格的默认外观样式...除了行和列外,DataGridView控件还有列标题和行标题,列标题和行标题没有对应的类,但DataGridView控件中有很多属性可以设置这两个组成部分的外观。...下面分别从如下五个方面进行讨论: n 总外观设置 BackgroundColor:设置其背景颜色 BorderStyle:设置边框样式 CellBorderStyle:设置其单元格边框样式...:设置该行的字体颜色、字体种类、对其方式和数据格式等 n 列外观 DataGridView控件的列外观在其Columns属性设置。

    1.5K10

    WinForm 界面美化

    主界面的扁平化 更改winform自带的MainForm窗体属性 将主窗体FormBorderStyle更改为None,这样就得到了一个无边框的窗体 调节背景色,找到自己喜欢的颜色,输入到BackColor...,背景色BackColor和字体色Forecolor设置为与界面颜色较为搭配的,将按钮的FlatStyle设置为Popup,它会自己随着界面风格调整 最小化和退出的代码如下: private...事件,来达到改变tabpage字体、字体颜色以及背景色的目的 private void tabControl1_DrawItem(object sender, DrawItemEventArgs...美化 通过设置ColumnHeadersDefaultCellStyle,来改变列标题的背景、字体和颜色 通过设置DefaultCellStyle,来改变单元格背景、字体和颜色...通过设置RowHeadersDefaultCellStyle,来改变行标题的背景、字体和颜色 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/140059

    2.4K20

    WPF 如何给 Grid 的某一行添加背景色

    此时需要设置这个 Grid 的某一行的背景颜色...上面代码就设置了 Grid 的第1行存在一个只有背景的 Border 元素,因此视觉效果就是 Grid 的第一行背景色是灰色 在 Grid 的某个行列里面可以存放无数个元素,元素层级在没有指定 Canvas.ZIndex...时将会按照编写的顺序设置 因此想要让 Border 作为某一行的 Grid 的背景色,就需要将这个 Border 在对比这一行的其他元素最先写。...因此最先写的元素就放在现实的最后面,可以理解为有一个画笔在画布上画,先画的图形将会在画面的最下方 看到这里小伙伴是不是也就理解了如何在 Grid 里面的某一列添加背景色呢。...其实给 Grid 的列添加背景色和给行添加背景色的方法是差不多的 通过 Border 加上背景色的方法不仅可以满足视觉效果,也是相对来说性能比较好的方法。

    2.8K10

    可视化数据库设计软件有哪些_数据库可视化编程

    3.BindingSource 控件的常用方法 1)RemoveCurrent方法:从列表中移除当前项。 2)EndEdit方法:将挂起的更改应用于基础数据源。...3)Clear属性:清除记录行的所有记录。 格式: DataGridView控件>.Rows .Clear() 4)Add方法:向数据表控件添加记录行。...3.DataGridView的当前行CurrentRow CurrentRow属性用于获取包含DataGridView控件当前的行,使用方式如下。...6.DataGridView行的编辑 (1)允许记录的增、删、改 单击DataGridView控件右上角的小三角按钮,打开“DataGridView任务”面板,使“启用添加”“启用删除”“启用编辑”...表格数据通常以类似账目的格式显示,其中各交替行的背景颜色不同,可通过设置AlternatingRowsDefaultCellStyle 属性实现交替行显示的效果。

    8.5K40

    C#—— DataGridView控件的各种操作总结(单元格操作,属性设置)

    // 设定 (0, 0) 为当前单元格 DataGridView1.CurrentCell = DataGridView1[0, 0]; 在整行选中模式开启时,你也可以通过 CurrentCell 来设定选定行...(详细参见 MSDN) 3) 单元格的边框颜色的设定 单元格的边框线的颜色可以通过 DataGridView.GridColor 属性来设定的。默认是 ControlDarkDark 。...但是只有在 CellBorderStyle 被设定为 Single、SingleHorizontal、SingleVertical 的条件下才能改变其边框线的颜色。...列的操作 *******DataGridView 不显示最下面的新行: 通常 DataGridView 的最下面一行是用户新追加的行(行头显示 * )。...********DataGridView 判断新增行: DataGridView的AllowUserToAddRows属性为True时也就是允许用户追加新行的场合下,DataGridView的最后一行

    13K32

    【转】基于C#的WinForm中DataGridView控件操作汇总

    // 设定 (0, 0) 为当前单元格 DataGridView1.CurrentCell = DataGridView1[0, 0]; 在整行选中模式开启时,你也可以通过 CurrentCell 来设定选定行...(详细参见 MSDN) 3) 单元格的边框颜色的设定 单元格的边框线的颜色可以通过 DataGridView.GridColor 属性来设定的。默认是 ControlDarkDark 。...但是只有在 CellBorderStyle 被设定为 Single、SingleHorizontal、SingleVertical 的条件下才能改变其边框线的颜色。...列的操作 ******* DataGridView 不显示最下面的新行: 通常 DataGridView 的最下面一行是用户新追加的行(行头显示 * )。...********DataGridView 判断新增行: DataGridView的AllowUserToAddRows属性为True时也就是允许用户追加新行的场合下,DataGridView的最后一行就是新追加的行

    6.1K50
    领券