2016-02-20 82 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; 
      } 
相關問題