C#重新加载表格

时间:2012-09-10 13:00:39

标签: c# winforms forms reload

例如,当用户更改背景颜色时,会修改Settings.settings文件。它有效。

但是,用户单击“确定”后,应用程序不会更改其背景颜色。 它仅在我再次关闭并构建应用程序时才有效。

如何在按钮点击时重新加载表单或用户控件? (尝试使用.Refresh(),但它不起作用)

    private void refreshSettings()
    {
        this.BackColor = Properties.Settings.Default.bgdColor;
        this.Font = Properties.Settings.Default.fontType;
        this.ForeColor = Properties.Settings.Default.fontColor;
    }

    private void Settings_Load(object sender, EventArgs e)
    {
        refreshSettings();
        bgdColorLBL.BackColor = Properties.Settings.Default.bgdColor;
        fontColorLBL.BackColor = Properties.Settings.Default.fontColor;
        fontTypeLBL.Font = Properties.Settings.Default.fontType;
        fontTypeLBL.Text = Properties.Settings.Default.fontType.Name;
    }

    private void okBTN_Click(object sender, EventArgs e)
    {
        LeagueUC lg = new LeagueUC();
        InitializeComponent();
        this.Close();
    }

    private void bgdColorLBL_Click(object sender, EventArgs e)
    {
        ColorDialog dlg = new ColorDialog();
        dlg.Color = Properties.Settings.Default.bgdColor;

        if (dlg.ShowDialog() == DialogResult.OK)
        {
            Properties.Settings.Default.bgdColor = dlg.Color;
            Properties.Settings.Default.Save();
            bgdColorLBL.BackColor = dlg.Color;
        }
    }

4 个答案:

答案 0 :(得分:1)

运行您从设置文件启动时设置控件属性的任何代码。

e.g。

    private void bgdColorLBL_Click(object sender, EventArgs e) 
{ 
    ColorDialog dlg = new ColorDialog(); 
    dlg.Color = Properties.Settings.Default.bgdColor; 

    if (dlg.ShowDialog() == DialogResult.OK) 
    { 
        Properties.Settings.Default.bgdColor = dlg.Color; 
        Properties.Settings.Default.Save(); 

        Settings_Load(null, null);
    } 
} 

答案 1 :(得分:0)

在按钮单击事件上,只需从设置文件中加载背景颜色。类似的东西:

this.BackColor = Properties.Settings.Default.Color;

答案 2 :(得分:0)

您可以为其创建binding。通过一些小技巧,绑定甚至可以允许立即切换界面语言。

答案 3 :(得分:0)

试试这个,这会改变您从“颜色对话框”中选择的颜色的表单背景颜色:

    private void button2_Click(object sender, EventArgs e)
    {
        ColorDialog dlg = new ColorDialog();

        if (dlg.ShowDialog() == DialogResult.OK)
        {
            this.BackColor = System.Drawing.Color.FromName(dlg.Color.Name);
        }
    }