2016-02-20 4 views
0

Как изменить шрифт приложения во время выполнения? мое приложение имеет форму MDI и дочернюю форму, и я хочу изменить шрифт приложения в основной форме (форма MDI) и сохранить настройки. но при изменении шрифта, а не в меню и contorl.Как изменить шрифт приложения во время выполнения?

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 (вызов). –

+1

Детский элемент управления должен «наследовать» свойство шрифта формы, чтобы довести это до конца. Поэтому повторение коллекции Controls необязательно, просто измените шрифт формы. Если вы видите, что элемент управления не изменяет размер и/или не изменяет его шрифт, щелкните его свойство 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; 
      } 
Смежные вопросы