[英]In C# how to open third form inside first form when i click a button of the second form
[英]How to open a second Form as dialog when the first Form is already loaded?
我有兩種形式:Form1和Form2。
我想在加載Form1后將Form2顯示為對話框。 我的意思是,當Form1加載並對用戶可見時,Form2將顯示為對話框。
對於Form1_Load
事件,它首先將Form2顯示為對話框,然后顯示Form1。
如何首先顯示Form1,然后顯示Form2為對話框?
使用form1
的Shown
事件來加載form2
,如下所示:
void form1_Shown(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.Show();
}
這樣,將首先顯示form1
並引發Shown
事件,而在Shown
事件內部,將加載並顯示form2
。
這將啟動Form1,然后啟動Form2
public Form1()
{
this.Load+= Form1_Load;
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
Form2 myForm2 = new Form2();
myForm2.Show();
}
或不先加載Form1,然后先將其強制進入Form2。
public Form1()
{
Form2 myForm2 = new Form2();
myForm2.ShowDialog();
//ShowDialog() will prevent actions from happening on this
//thread until Form2 is closed.
InitializeComponent();
}
如果只想先啟動Form2,則只需修改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 Validated中加載第二個表單:
public Form1()
{
this.Validated += Form1_Validated;
InitializeComponent();
}
private void Form1_Validated(object sender, EventArgs e)
{
Form2 myForm2 = new Form2();
myForm2.Show();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.