我想能夠顯示,隱藏或關閉一種形式內的一些其他形式。這個想法是我的程序從一個表單開始,並且有一些按鈕會顯示其他表單。也就是說,如果用戶點擊一個按鈕來引入另一個表單,此主表單應該最小化,並且每當用戶關閉另一個表單時,此表單將恢復到正常或最大化狀態。控制多種形式顯示,隱藏或關閉一種形式在C#
的代碼看起來像這樣對控制其他形式(Form1.cs中)我的主要形式有:
namespace MultipleForms
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
/*
* I want to make a public reference to this Form1
* So that when user closes Form2 That is F2 this form will be
* set back to normal or maximized state
*/
private void buttonStartForm2_Click(object sender, EventArgs e)
{
//Declare Form2
Form2 F2 = new Form2();
//Show Form2
F2.Show();
//Minimize Form1
this.WindowState = FormWindowState.Minimized;
}
}
}
這是Form2.cs
namespace MultipleForms
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
//FormClosed event handler
private void Form2_FormClosed(object sender, FormClosedEventArgs e)
{
//Closing Form2
this.Close();
//Now I need a code to make Form1 to recover from minimized
// state to normal or maximized state. how do I should refer to it?
}
}
}
我想我必須做一些表單關閉事件的東西,但我怎麼能初始化Form1.cs作爲公共的東西?或者我也應該在Form2.cs中初始化Form1.cs?
namespace MultipleForms
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}
PS:這是crtitical該窗體2應該被關閉,沒有牆根
UPDATE
使用漢斯的解決方案,它是或者它應該通過Program.cs的文件來實現最好使用這樣說:
private bool isEnabledCmpFrm = false;
public void buttonStartComparisonForm_Click(object sender, EventArgs e)
{
if (!isEnabledCmpFrm)
{
ComparisonForm CmpFrm = new ComparisonForm();
CmpFrm.Show();
CmpFrm.WindowState = FormWindowState.Normal;
this.WindowState = FormWindowState.Minimized;
isEnabledCmpFrm = true;
CmpFrm.FormClosed += delegate
{
this.WindowState = FormWindowState.Normal;
isEnabledCmpFrm = false;
};
}
}
感謝這很好,但每次我點擊按鈕選擇一個窗體來顯示,它會運行該窗體(窗體的同一個實例,但具有不同的窗口)。我怎樣才能將它限制爲1格式?除非已打開的表單已關閉,因此應再次創建新的表單實例。 – 2011-04-07 08:29:00
開始一個新問題。 – 2011-04-07 11:16:03