我在绑定事件bind()中,绑定了datagridview,并在符合条件的行设置字体颜色为红色,
在页面的Load事件的最后调用了bind(),但数据绑定了,但对应行的字体没变红。
有一个查询按钮,在此按钮的单击事件中唯一代码就是bind()。点击时对应行的字体颜色会变红。跟踪了下,在页面加载时,确实datagridview的那些行字变红了,并且只绑定了一次,没看到有什么让datagridview变格式的代码,只是在追踪到页面的时钟时,不断循环跟踪不下去了。但去掉时钟的事件,加载时仍没显示红色有什么可以让datagridview的样式恢复到初始状态的?

解决方案 »

  1.   

    好像需要在datagridview的datasourcecompleted或者cellformat设置样式,好像可以
      

  2.   

    DataGridView, CellFormating事件 private void OnCellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
            {
                if (e.ColumnIndex > 0 && e.ColumnIndex < 4 && e.RowIndex > -1)
                {
                    bool bVal = (bool)e.Value;
                    if (bVal)
                    {
                        e.CellStyle.ForeColor = Color.Green;
                        e.CellStyle.SelectionForeColor = Color.Green;
                    }
                    else
                    {
                        e.CellStyle.ForeColor = Color.Red;
                        e.CellStyle.SelectionForeColor = Color.Red;
                    }
                }
      

  3.   

    大家可能没看清我的问题现在用查询按钮调用bind(),颜色会变。但在页面加载中的load中调用,根据跟踪颜色,会变,但最后还是没变
      

  4.   

    不要在窗体的Load事件调用,试试Shown事件.