我有两种形式:Form1和Form2。
我想在加载Form1时将Form2显示为对话框。我的意思是当Form1加载并且对用户可见时,Form2显示为对话框。
使用Form1_Load
事件,它首先将Form2显示为对话框,然后显示Form1。
如何首先将Form1和Form2显示为对话框?
答案 0 :(得分:5)
使用form1
form2
事件加载void form1_Shown(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.Show();
}
,如下所示:
form1
这样首先显示Shown
Shown
并举起form2
事件,在{{1}}事件中,{{1}}将被加载并显示。
答案 1 :(得分:0)
这将启动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());
}
}
答案 2 :(得分:0)
您可以在事件Form1 Validated:
中加载第二个表单public Form1()
{
this.Validated += Form1_Validated;
InitializeComponent();
}
private void Form1_Validated(object sender, EventArgs e)
{
Form2 myForm2 = new Form2();
myForm2.Show();
}