【问题标题】:conditional change of a datagridviews cell background color and textdatagridview 单元格背景颜色和文本的条件更改
【发布时间】:2009-10-28 19:47:23
【问题描述】:

这是一个 winform vb.net 2008 应用程序。我正在从数据库中取回数据并基于一些静态条件...我想更改背景和文本的颜色。 winform中没有rowdatabound事件...

希望有人可以提供一些指导 谢谢 香农

【问题讨论】:

  • 我能想到至少 20 种不同的方式从数据库中取回数据,所以如果您能更具体一点,可能会有所帮助。
  • 对此感到抱歉...我从数据库中取回数据没有问题,它正在格式化数据进入的单元格的样式。

标签: vb.net winforms datagridview colors cell


【解决方案1】:

我让它工作了......在RowPostPaint事件中......如果我加入

if (my criteria here)
    Me.dgTableInfo.Rows(e.RowIndex).Cells("ColumnName").Style.BackColor = Color.Red
end if

【讨论】:

    【解决方案2】:

    不要忘记也设置 selectoinBackColor...否则,如果您的红色行发生了变化,但您将其突出显示,它看起来就像其他所有内容一样。

    【讨论】:

      【解决方案3】:

      这无需创建或调用多个子程序或函数即可工作。似乎适用于我需要的每个实例。

      Do While myDataReader.Read()
          ItemID = Trim(myDataReader.Item("ITEM").ToString())
          PAR = myDataReader.Item("PAR").ToString()
          Returned = myDataReader.Item("RETURNED_AMOUNT")
          Taken = myDataReader.Item("TAKEN_AMOUNT")
          OnHand = ((PAR + Returned) - Taken)
      
          DataGridViewItemList.Rows.Add(ItemID, PAR, Returned, Taken, OnHand)
      
          RI = DataGridViewItemList.Rows.Count - 1
          If OnHand <= (PAR / 2) Then
              DataGridViewItemList.Rows(RI).DefaultCellStyle.BackColor = Color.DarkSalmon
          Else
              DataGridViewItemList.Rows(RI).DefaultCellStyle.BackColor = Nothing
          End If
      Loop
      

      【讨论】:

        猜你喜欢
        • 2013-04-12
        • 2016-05-27
        • 2015-09-29
        • 2014-10-08
        • 1970-01-01
        • 2022-01-20
        • 2014-05-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多