我有2種形式;我的主要形式命名爲Form1
和我的第二種形式命名Form2
如何在開始時在主窗體頂部顯示第二個窗體?
我的主要形式,在開始顯示出來了,我想顯示Form2
太多,但它Form1
下顯示出來。 我希望它顯示在我的主窗體上。
我試圖設置Form2
的TopMost
屬性到true
然後false
但它沒有工作。 我也試圖創建一個不同的線程Form2
出現在Form1
之後,在這種情況下Form2
很快出現然後消失。
我有2種形式;我的主要形式命名爲Form1
和我的第二種形式命名Form2
如何在開始時在主窗體頂部顯示第二個窗體?
我的主要形式,在開始顯示出來了,我想顯示Form2
太多,但它Form1
下顯示出來。 我希望它顯示在我的主窗體上。
我試圖設置Form2
的TopMost
屬性到true
然後false
但它沒有工作。 我也試圖創建一個不同的線程Form2
出現在Form1
之後,在這種情況下Form2
很快出現然後消失。
顯示的Form1
Form2
在Shown
事件處理程序:
private void Form1_Shown(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.Show();
}
可以使用ShowDialog()
而不是Show()
如果你想Form2
是模態。
解決了它!謝謝。 – user2263265 2013-04-09 19:43:55
+1。從來不知道「Shown」事件。雖然我不確定爲什麼這個工作不需要指定所有權,就像'form2.Show(this)'。它是否是佈局順序的一個功能,它默認在項目中最後創建的窗體的頂部創建窗體? – Neolisk 2013-04-09 19:59:30
@Neilisk是的,Windows根據它們在屏幕上的外觀進行排序。 [SetWindowPos](http://msdn.microsoft.com/en-us/library/windows/desktop/ms633545(v = vs.85).aspx)方法用於設置表單顯示時的Z順序。 – 2013-04-10 05:52:34
在Form1的加載事件中添加以下代碼:
Form2 form2 = new Form2();
form2.TopMost = true;
form2.Show();
謝謝。但我不希望Form2成爲TopMost。我只想讓它在啓動時顯示在Form1的頂部。 – user2263265 2013-04-09 19:37:33
new Form2().ShowDialog()
這也將鎖定Form1中,直到窗體2被關閉
謝謝。這是一個有效的答案,但我不希望Form1被鎖定。還是謝謝你。 – user2263265 2013-04-09 19:45:13
'TopMost'應該有實際工作,但只是作爲一種臨時解決方案。 – Neolisk 2013-04-09 20:00:53