private void FrmAProductOrder_Load(object sender, EventArgs e)
{
     GetProductOrder(strFilter);   //datatable綁定到DataGridView     SetDgvRowStyle();//設置DataGridView行的背景色等。問題就出在這裡:背景色設置失效,調試時卻正常運行。即使
                      //直接 dgv.Rows[0].DefaultCellStyle.ForeColor  = Color.Red;都沒用
}但是把上面兩個函數放到按鈕裡就可以
//查詢
private void btnQuery_Click(object sender, EventArgs e)
{
       GetProductOrder(strFilter);       SetDgvRowStyle();   //這裡就可以了,為什麼呢?        
}       

解决方案 »

  1.   

    Gridview好香不能给行设置样式.
      

  2.   

    看看初始化函数里面的代码的顺序
    把Load事件挪到最后
      

  3.   

    这样测试下private void btnQuery_Click(object sender, EventArgs e) 

        FrmAProductOrder_Load(sender, e)   
    }      就能看出结果了
      

  4.   

    我记得设置行的背景颜色可以这样设置
    this.GridView1.Rows[0].BackColor = System.Drawing.Color.Red;
      

  5.   

    急著用,先把SetDgvRowStyle();放到Shown事件裡,以後再研究
      

  6.   

    可能Load的时候,加载的样式被覆盖了;设个断点看看,执行顺序是不是有问题
      

  7.   

    private void FrmAProductOrder_Load(object sender, EventArgs e) 这个方法 是什么方法??
    - - 还是个私有的
      

  8.   

    可能Load的时候,加载的样式被覆盖了
      

  9.   


    这个不会搞的化在初始化函数中InitializeComponent();语句后+你要改变样式的函数public MainForm()
    {
    //
    // Windows 窗体设计器支持所必需的
    //
    InitializeComponent();
    //
    // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
    //
                            //改变样式的函数
    }
      

  10.   

    先InitializeComponent();
    后load();
      

  11.   

    把你的solution重新编译一下看看
      

  12.   

    問題解決了,原來的代碼是:
    dgv.RowTemplate.DefaultCellStyle.ForeColor = FrmS_Login._myDgvForeColor;
    dgv.RowTemplate.DefaultCellStyle.SelectionBackColor = FrmS_Login._myDgvSelectionBackColor;
    dgv.RowTemplate.DefaultCellStyle.SelectionForeColor = FrmS_Login._myDgvSelectionForeColor;現在改為:(少了RowTemplate)
    dgv.DefaultCellStyle.ForeColor = FrmS_Login._myDgvForeColor;
    dgv.DefaultCellStyle.SelectionBackColor = FrmS_Login._myDgvSelectionBackColor;
    dgv.DefaultCellStyle.SelectionForeColor = FrmS_Login._myDgvSelectionForeColor;