我有两个窗体,我想一个接一个地打开它们
本文关键字:一个 两个 窗体 | 更新日期: 2023-09-27 18:30:03
我的MainForm打开得很好,但我不知道如何打开第二个表单。我在某个地方读到一次只能打开一个?无论如何,我希望第二个窗体先打开,然后再打开我的主窗体。
我遇到的问题是,InitializeComponent();除了它所附的表单之外,其他任何表单都无法访问(据我所知)。
任何关于我应该做什么的想法都会很棒,因为我仍处于学习阶段,我的搜索技能还没有任何用处。
您应该创建一个表单实例,然后打开它:
Form1 form = new Form1();
form.Show();
试试这个:
static class Program
{
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
var thread = new Thread(ThreadStart);
thread.TrySetApartmentState(ApartmentState.STA);
thread.Start();
Application.Run(new Form1());
}
private static void ThreadStart()
{
Application.Run(new Form2());
}
}
您可以在Form1.cs:中使用此代码
Form2 tempForm = new Form2();
this.AddOwnedForm(tempForm);
tempForm.Show();
当您运行应用程序时,您可能已经知道,main()是应用程序的入口点。在main()中,您将能够找到以下代码,这些代码初始化并显示应该首先加载哪个表单。
Application.Run(new Form1());
在这种情况下,加载并显示Form1。如果你想在Form1加载后立即显示你的第二张表格,你可以在Form1_Load-中放入以下代码
private void Form1_load(object send, EventArgs e)
{
Form2 newForm = new Form2;
newForm.show();
}
希望能有所帮助:)
您也可以使用
Form.showDialog()
它与show()相同,但在表单关闭时返回一个False布尔值。示例:
if(Form.showDialog() != true)
{
// Form is now closed. Do something
}
我觉得这个更有用,以防你突然需要什么。