我有兩種形式:Form1和Form2。如何在第一個窗體已經加載時打開第二個窗體作爲對話框?
我想在Form1加載時顯示Form2作爲對話框。我的意思是當Form1被加載並且對用戶可見時,Form2被顯示爲對話框。
使用Form1_Load
事件時,它首先將Form2顯示爲對話框,然後顯示Form1。
如何首先將Form1和Form2作爲對話框顯示?
我有兩種形式:Form1和Form2。如何在第一個窗體已經加載時打開第二個窗體作爲對話框?
我想在Form1加載時顯示Form2作爲對話框。我的意思是當Form1被加載並且對用戶可見時,Form2被顯示爲對話框。
使用Form1_Load
事件時,它首先將Form2顯示爲對話框,然後顯示Form1。
如何首先將Form1和Form2作爲對話框顯示?
使用Shown
事件form1
加載form2
如下:
void form1_Shown(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.Show();
}
那首先會顯示form1
並提高Shown
事件和Shown
事件,將會加載並顯示form2
。
此推出Form1上,然後窗體2
public Form1()
{
this.Load+= Form1_Load;
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
Form2 myForm2 = new Form2();
myForm2.Show();
}
或做不先加載Form 1,並迫使他們到窗體2首。
public Form1()
{
Form2 myForm2 = new Form2();
myForm2.ShowDialog();
//ShowDialog() will prevent actions from happening on this
//thread until Form2 is closed.
InitializeComponent();
}
如果你只是想先啓動窗體2,只需修改Program.cs的
static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
if (args.Length == 0) //if no command line arguments, run Form1
{
Application.Run(new Form1());
}
else //if command line arguments exist, run Form2
{
Application.Run(new Form2());
}
}
您可以在事件Form1中驗證加載第二種形式:
public Form1()
{
this.Validated += Form1_Validated;
InitializeComponent();
}
private void Form1_Validated(object sender, EventArgs e)
{
Form2 myForm2 = new Form2();
myForm2.Show();
}
可能重複:[?我怎樣才能關閉登錄表單,並沒有表現出我的應用程序關閉的主要形式(HTTP://計算器。 com/questions/4759334/how-can-i-close-a-login-form-and-show-the-main-form-without-my-application-closi) – 2012-02-02 06:28:45
這裏就是這樣:https:// msdn。 microsoft.com/en-us/library/c7ykbedk(v=vs.110).aspx或谷歌'showdialog方法' - >這將不允許使用Form1,直到Form2關閉。如果你需要關閉而不是隱藏,請不要忘記使用Dispose。 – bshea 2017-01-12 16:28:11