none
如何根据数据变化,动态设置DataGridView行格式? RRS feed

  • 问题

  • 我想根据每行中某列数值变化,动态显示DataGridView行的前景或背景颜色,请问如何设置呢?

    请按该列在DataGridView中和不在DataGridView中(只在表中)两种情况分别说明。

    2010年5月28日 7:23

答案

  • 你好,

    CellValidating, CellFormatting都可以用来check值设置Row的背景色。你可以分别测试一下选用适合你自己的,设置颜色就如周雪峰给出的代码。判断逻辑则根据你自己的需要了。


    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Welcome to the All-In-One Code Framework!
    • 已标记为答案 大海怪 2010年6月2日 22:51
    2010年6月2日 9:08

全部回复

  • 你好!

         这样设置的:

    dgv.Rows[i].DefaultCellStyle.BackColor = Color.Red

         希望对你有帮助!


    周雪峰
    2010年5月28日 14:41
    版主
  • 谢谢!

        我想要的效果是这样的:

        如表中列A为Boolean,DataGridView控件填充数据或编辑数据后,各行的前景(或背景)根据其值True或False,分别显示为Red或Blue。

        我想是不是在CellValueChanged事件中,加上这样的代码:

            Me.DataGridView1.DefaultCellStyle.ForeColor = IIf(条件表达式, Color.Black, Color.Blue)

        关键是条件表达式不知如何写。

    2010年5月29日 2:28
  • 你好!

         你可以直接用If...Else...EndIf来处理这个逻辑啊!


    周雪峰
    2010年5月29日 5:06
    版主
  • 你好,

    CellValidating, CellFormatting都可以用来check值设置Row的背景色。你可以分别测试一下选用适合你自己的,设置颜色就如周雪峰给出的代码。判断逻辑则根据你自己的需要了。


    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Welcome to the All-In-One Code Framework!
    • 已标记为答案 大海怪 2010年6月2日 22:51
    2010年6月2日 9:08