2015-08-25 68 views
-1

我正在開發一個Windows窗體應用程序,我需要有幾個不同的屏幕。一個屏幕上有一個選項列表,然後當他們選擇一個時,它將加載一個不同的屏幕。我希望這樣看起來不錯,而不是從第一張開始第二張的舊方式,現在屏幕上有兩種形式。我希望從一個顯示平滑過渡到下一個顯示,就像瀏覽器發生變化時一樣。有沒有一種方法可以將所有這一切全部以一種形式出現,並且控件不斷變化,或者至少有這種外觀? (即立即彈出其他形式的完全相同的大小和關閉較舊的形式之上)在Windows窗體應用程序c中使多個窗體看起來像一個窗體#

我覺得這是真的很明顯,但我找不到它在任何地方。任何幫助感謝!

+2

使所有的'子表單'成爲單獨的用戶控件,並且您的單一表單可以根據需要加載這些用戶控件。 – ps2goat

回答

-1

以下是非常簡單的MDI應用程序tutorial。它會讓你知道它是如何工作的。

基本概念:

  • 你有一個主要形式MainForm這將是父母給其他形式。設置IsMdiContainer = true
  • 創建子表單並將MdiParent設置爲MainForm實例。

樣品:

// Create a new form to represent the child form. 
Form child = new Form(); 
// Make the new form a child form. 
child.MdiParent = this; 
// Display the child form. 
child.Show(); 
0

一號方法:使用 面板,你可以把你所有的控件(要隱藏或顯示在單擊選定的選項)面板內。然後根據選擇的選項隱藏或顯示此面板。

第二種方法: 您可以爲每個選項使用每個窗體窗體。只需使所有窗口大小相等,並將這些行放入每個窗體「form_load」函數中即可。 這段代碼將打開你的窗體完全在屏幕中心。

System.Windows.Forms.Screen src = System.Windows.Forms.Screen.PrimaryScreen; 
int src_height = src.Bounds.Height; 
int src_width = src.Bounds.Width; 

//put the form in the center 

this.Left = (src_width - this.Width)/2; 
this.Top = (src_height - this.Height)/2; 

要關閉之前的形式使用

this.close(); 

要打開另一個窗口使用這條線

Form_Name frm = new Form_Name(); 
frm.Show(); 

注:使用this.close();主窗體中的將關閉當前顯示的所有窗體,包括主窗體這是因爲它是打開其他窗口的父窗口。如果我們關閉父窗口,應用程序將不得不關閉它的所有子窗口。

爲防止出現此問題,請使用this.Hide();隱藏主窗體不關閉它。 如果Windows窗體上的控件數量較多,請使用第2種方法。否則,我建議你使用第一種方法。

相關問題