2012-08-07 73 views
0

我想讓用戶更改顯示在我的應用程序中的數據網格的顏色。更新datagridview單元格樣式

爲此,我使用用戶設置和colordialog框。

問題是,當我嘗試更新顏色時,它不顯示,我要麼關閉/重新打開應用程序以查看更改,要麼加載完全不同的DGV(它們在tabcontrol中)。

這裏是我在更新使用代碼:

AlternatingRowsDefaultCellStyle.BackColor = Properties.Settings.Default.CellBackColor1; 

我這麼想嗎?

我試圖刷新DGV,但它並沒有改變一件事情。

+0

你有沒有試過調用[DataGridView.Invalidate](http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.invalidate.aspx)? – Adrian 2012-08-07 07:15:53

+0

是的,那是我的第一次嘗試,但沒有運氣。 – 2012-08-07 07:18:17

+0

在黑暗中刺傷,也許遠不是最好的方式來做到這一點,但設置dgv.Visible = False:dgv.Visible = True – Adrian 2012-08-07 07:21:10

回答

0

我添加了一個Button到一個窗體打開一個ColorDialog並等待用戶選擇一種顏色。如果用戶點擊確定按鈕,它首先保存設置,然後將dataGridView.CellStyle.BackColor設置爲用戶選擇的任何顏色。這會強制立即更新帶有正確背景顏色的表單。

private void button1_Click(object sender, EventArgs e) 
{ 
    if (colorDialog1.ShowDialog() == DialogResult.OK) 
    { 
     Properties.Settings.Default.CellBackColor1 = colorDialog1.Color; 
     dataGridView1.AlternatingRowsDefaultCellStyle.BackColor = colorDialog1.Color; 
    } 
} 

我假設你Form.LoadForm.FormClosing事件處理的設置保存。