2012-08-07 102 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事件处理的设置保存。

相关问题