我有一个主要表格。单击工具 - >我的应用程序菜单中的选项我正在显示另一个表单(OptionsForm),其中包含更改控件使用的字体的选项。我将所选字体存储在属性:设置:默认值:some_object。我也可以检索它并更新我的控件,但只能点击我的MainForm上的按钮。
我尝试通过实例化MainForm来更新控件,从OptionsForm调用在MainForm上编写的函数.Font - >不工作。
如何确保每当我更改属性中的字体:设置:默认:some_object时,所有控件都会反映更改?
谢谢, 开发
答案 0 :(得分:2)
根据我的理解,你想在Form Load中为Form中的所有控件设置一个Font。
试试这段代码。
Form1 -
Form2 frm2 = new Form2();
frm2.ShowDialog(this);
在Form2-按钮中单击
Properties.Settings.Default.MyFont = this.Font;
Properties.Settings.Default.Save();
(from Control ctrl in this.Owner.Controls
select ctrl).ToList().ForEach(ctrl => ctrl.Font = Properties.Settings.Default.MyFont);
此代码将在Form中找到所有控件并指定Font。
答案 1 :(得分:2)
private void button1_Click(object sender, EventArgs e)
{
if (DialogResult.OK == fontDialog1.ShowDialog(this))
{
button1.Font = fontDialog1.Font;
}
}
这一行可能会影响应用程序中每个控件的字体,因为它们现在都绑定到同一个应用程序设置。非常方便。
修改强> 或者您可以使用以下代码直接更新设置(而不是更新绑定到它的控件之一):
WindowsFormsApplication1.Properties.Settings.Default.UserFont = fontDialog1.Font;