2015-02-19 2 views
2

У меня есть BaseForm класса, как это, что наследуется форма классаИзменение цвета фона всех форм Winform применения

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(); 
      } 
     }  
} 

Когда я нажимаю кнопку1 на MainForm и выбираю цвет из диалогового окна цвета. Цвет фона MainForm не изменяется. Что я делаю неправильно?

Цвет Btw меняется при повторном запуске приложения.

ответ

3

Событие OnLoad инициируется только при загрузке формы, оно не срабатывает при нажатии кнопки. Поэтому вам нужно также изменить форму BackColor на button1_Click_1.

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

Thnx для быстрого ответа. это сработало – Junaid

Смежные вопросы