2009-07-18 98 views
2

我使用VSTS 2008 + C#+ .Net 2.0開發Windows Forms應用程序。在默認的Form1中,我有一個按鈕,然後單擊該按鈕將調用另一個Form - Form2。如何使Windows窗體始終顯示在頂部?

我的問題是,我想讓Form2總是在最上面,即用戶必須響應Form2(在Form2中填寫信息並關閉它),直到用戶可以繼續處理Form1。如何實現這個功能?

這是我目前的代碼。

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     Form2 form2 = new Form2(); 
     form2.Visible = true; 
    } 
} 

回答

16

最好的辦法做的正是你想要的是讓窗口2的對話框。你可以通過調用它來執行此操作。

​​

方法。

8

試試這個

this.TopMost = true; 
+0

對不起你的解決方案不起作用。我已經添加了代碼form2.TopMost = true,但是在添加代碼後,我仍然可以移除Form2並繼續響應Form1。任何想法有什麼不對? – George2 2009-07-18 10:07:02

+0

一個應用程序(許多窗體)的最佳解決方案是ShowDialog方法。 – 2009-07-18 10:43:57

1

假設您想阻止用戶與Form1交互,直到他們完成Form2,您需要ShowDialog()方法。

0

使用本地.NET theres沒有辦法將表單放在頂部並將其保留在那裏。

Form.TopMost只在創建時將窗體設置在最上面。 Form.ShowDialog()將窗體設置爲該應用程序的所有窗體的頂部,但也可以在其他應用程序後面向後拋出。

我記得我們使用了一些P/Invoke-Calls到本機Win32來處理這種情況,但是不記得確切地調用了什麼。無論如何,100%從未達到過,在Win2000上傳播到WinXP,無處不在。

相關問題