3

我想设置 devexpress winforms 网格的背景颜色。

这是我调用的方法。

在表单加载..

加载代码();- 返回在 gridView rowstyle 方法中使用的数据集。

gridView1.RefreshData();

private void gridView1_RowStyle(object sender, RowStyleEventArgs e)
{
  string code=string.Empty;
  for (int i = 0; i <= ds.Tables[0].Rows.Count - 1; i++)
  {
    code = View.GetRowCellDisplayText(e.RowHandle, View.Columns["code"]);
    if (code.Trim() == ds.Tables[0].Rows[i]["code"].ToString().Trim())
    {
        e.Appearance.BackColor = Color.LightBlue;
        e.Appearance.BackColor2 = Color.WhiteSmoke;
    }
  }

}

我该如何处理,或者有其他方法可以处理吗?

问题:代码没有抛出任何错误,但是我没有看到行在加载表单后自动获得背景颜色,但是当我单击网格的任何行时(加载表单后,网格数据是可见),然后我可以看到背景颜色。

4

2 回答 2

1

您必须通过设置来告诉 DevExpress 哪些 Appearance 属性应该生效e.Appearance.Options

在你的情况下e.Appearance.Options.UseBackColor = true

有关详细信息,请参阅:http ://documentation.devexpress.com/#windowsforms/DevExpressUtilsAppearanceOptionsMembersTopicAll

注意:当您定义了样式EvenRow或者OddRow您也必须设置时e.HighPriority(请参阅:http ://documentation.devexpress.com/#windowsforms/DevExpressXtraGridViewsGridRowStyleEventArgs_HighPrioritytopic )

于 2013-09-25T23:22:05.663 回答
1

您基本上需要为 GridView 设置默认颜色,如下所示,

gridView.Appearance.Row.BackColor = Color.Black;
gridView.Appearance.Row.BorderColor = Color.Black;
gridView.Appearance.Row.ForeColor = Color.White;

上面我们为 Row 设置外观,然后对 SelectedRow、FocusedRow、FocusedCell 和 GroupRow 执行相同的操作。这将使所有行都具有黑色背景和白色前景。

现在,如果您想覆盖特定单元格的默认颜色,请覆盖 RowCellStyle 事件,https: //documentation.devexpress.com/#WindowsForms/DevExpressXtraGridViewsGridGridView_RowCellStyletopic

于 2015-09-02T15:37:51.390 回答