2017-01-08 24 views
0

У меня есть кнопки в меню опций, которые я хочу, чтобы иметь возможность изменять стиль каждой формы за один раз. В настоящий момент это относится только к самому меню параметров, потому что я использовал «это».C# как применить WindowState, FormBorderStyle и Bounds к нескольким формам одновременно?

private void Fullscreen_toggle_Click(object sender, EventArgs e) 
    { 
     this.WindowState = FormWindowState.Normal; 
     this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; 
     this.Bounds = Screen.PrimaryScreen.Bounds; 
    } 

    private void Windowed_toggle_Click(object sender, EventArgs e) 
    { 
     this.WindowState = FormWindowState.Maximized; 
     this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Sizable; 
    } 

Есть ли способ сделать это применимым в глобальном масштабе?

ответ

0

Итерация по Application.OpenForms() коллекции, как это:

private void Fullscreen_toggle_Click(object sender, EventArgs e) 
    { 
     foreach (Form frm in Application.OpenForms) 
     { 
      frm.WindowState = FormWindowState.Normal; 
      frm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; 
      frm.Bounds = Screen.PrimaryScreen.Bounds; 
     }  
    } 
+0

, что ничего другого для меня не делать? – Tom1

+0

Работает отлично для меня ... но это повлияет только на формы, которые ** в настоящее время открыты и отображаются ** в вашем приложении. Он не меняет «сохраненное состояние» форм. Если вы откроете другую форму, вам придется применить настройки к своим новым экземплярам. –