我有这样的BaseForm类继承了Form类
public partial class BaseForm : Form
{
protected override void OnLoad(EventArgs e)
{
Color colBackColor =Properties.Settings.Default.FormsBackgroundColor;
BackColor = colBackColor;
}
}
这样的MainForm类继承了BaseForm类。
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的背景颜色不变。我做错了什么?
顺便说一句,当我重新运行该应用程序时,颜色会改变。
最佳答案
OnLoad
事件仅在加载表单时触发,单击按钮时不会触发。因此,您还需要在button1_Click_1
中更改表格BackColor的形式。
if (colorDlg.ShowDialog() == DialogResult.OK)
{
Properties.Settings.Default.FormsBackgroundColor= colorDlg.Color;
Properties.Settings.Default.Save();
this.BackColor = colorDlg.Color;
}
关于c# - 在Winform应用程序中更改所有表单的背景色,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28614970/