2016-02-20 50 views
0

如何在运行时更改我的应用程序字体?我的应用程序有MDI表单和子表单,我想在主表单(MDI表单)中更改应用程序字体并保存在设置中。但是当更改字体时,不会影响菜单和控制。如何在运行时更改应用程序字体?

fontDialog1.ShowDialog(); 
Font = fontDialog1.Font; 

我还添加了这个代码,以改变主窗体中的所有控件。

foreach (Control c in Controls) 
{ 
    c.Font = fontDialog1.Font; 
} 

但在当前形式中的这种效果并且不改变子形式。 比添加此代码变更孩子字体时显示

public FrmChild() 
{ 
    font = myfont; 
    foreach (Control c in Controls) 
    { 
     c.Font = fontDialog1.Font; 
    } 
    InitializeComponent(); 
} 
+2

尝试下面的InitializeComponent()调用这个foreach循环的代码。 –

+1

子控件应该“继承”窗体的Font属性,以实现良好的效果。因此迭代Controls集合不是必需的,只需更改表单的Font即可。如果您看到控件未调整大小和/或更改其字体,请右键单击其Font属性并单击重置。您正在询问有关MdiChildren属性的信息,您必须重复它以获取子表单才能更改。避免添加实际上没有用的花里胡哨的东西,搞错了布局是一个非常可能的事情。 –

回答

0
FontDialog fd = new FontDialog(); 
      fd.ShowDialog(); 
      Settings.Default.MyFont = fd.Font; 
      Settings.Default.Save(); 
      Font = Settings.Default.MyFont; 
      foreach (Control c in Controls) 
      { 
       c.Font = Settings.Default.MyFont; 
      } 
相关问题