2013-08-25 134 views
0

我有一個工具條和一個statusstrip,我切換它們的Visible屬性。 當「關閉」時,表格被最小化爲系統托盤。切換ToolStrip的可見性

private void MainForm_FormClosing(object sender, FormClosingEventArgs e) 
    { 
     e.Cancel = true; 
     this.WindowState = FormWindowState.Minimized; 
     this.Hide(); 
    } 

我從封閉的的NotifyIcon文本菜單的應用程序,我想保存工具條(StatusStrip中)的可見性。 問題是當表單「關閉」時它們總是錯誤的。 是否可以區分它們何時不可見或表單是隱藏的

+1

你最好的選擇是創建一個字段,如'ToolstripsVisibleWhenShwon',並設置和清除變量當用戶指示條應該顯示/隱藏。它會清楚地表示您正在跟蹤的狀態。 –

+1

Visible屬性有點不尋常,當你讀回來時,你會得到控件的實際狀態。當您隱藏窗口時,始終* false *。你只需要保留一個額外的變量。或者在分配Visible屬性時設置應用程序設置。 –

回答

1

我不太明白問題出在哪裏以及如何區分表單狀態。 爲什麼不比較FormWindowState枚舉並設置組件設置?

1添加應用程序設置:

名稱:可見

類型:BOOL

範圍:用戶

值:False

2無論在代碼中設置組件屬性。

if (this.WindowState == FormWindowState.Minimized) 
     { 
     toolStrip.Visible = true; 
     } 
     else 
     { 
     toolStrip.Visible = false; 
     } 

3最後保存設置

using myApplication.Properties; 
private void MainForm_FormClosing(object sender, FormClosingEventArgs e) 
    { 
     Settings.Default.Visible = toolStrip.Visible ; 
     Settings.Default.Save(); 
    } 
+0

我想保存toolstrip.visual狀態。當表單關閉時(this.Hide())toolstrip始終返回false – albert

+0

然後在this.hide()之前保存它。 hide()方法將控件的可見屬性設置爲false,這就是它的工作原理。在這種情況下,你隱藏表單而不是工具條。上面的代碼顯示瞭如何創建,修改和保存工具欄設置。 –