簡體   English   中英

當第一個表格已經加載時,如何打開第二個表格作為對話框?

[英]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為對話框?

使用form1Shown事件來加載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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM