我有两种形式: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