在winform应用程序中更改所有表单的背景颜色

时间:2015-02-19 19:17:17

标签: c# winforms

我有像这样继承Form Class

的BaseForm类
 public partial class BaseForm : Form
 {
    protected override void OnLoad(EventArgs e)
    {
       Color colBackColor =Properties.Settings.Default.FormsBackgroundColor;
       BackColor = colBackColor;
    }
  }
像这样继承BaseForm类的

和MainForm类。

public partial class MainForm : BaseForm
{
    private void button1_Click_1(object sender, EventArgs e)
    {
            ColorDialog colorDlg = new ColorDialog();
            if (colorDlg.ShowDialog() == DialogResult.OK)
            {
                Properties.Settings.Default.FormsBackgroundColor= colorDlg.Color;
                Properties.Settings.Default.Save();
                this.Refresh();
                this.Invalidate();
            }
        }    
 }

当我点击MainForm上的button1并从颜色对话框中选择颜色时。 MainForm的背景颜色不会改变。我做错了什么?

重新运行应用程序时,Btw颜色会发生变化。

1 个答案:

答案 0 :(得分:3)

OnLoad事件仅在表单加载时触发,单击按钮时不会触发。因此,您还需要在button1_Click_1中更改BackColor格式。

if (colorDlg.ShowDialog() == DialogResult.OK)
{
    Properties.Settings.Default.FormsBackgroundColor= colorDlg.Color;
    Properties.Settings.Default.Save();
    this.BackColor = colorDlg.Color;
}