2010-03-20 36 views
6

我的主窗體使用.ShowDialog啓動另一個模態對話框。我想根據鼠標位置來定位它,但我嘗試撥打SetDesktopLocation沒有任何效果。這是正確的方法嗎?如何移動Winform對話框

感謝

回答

6

爲了設置窗體的位置編程它的可見之前,您需要將StartPosition屬性設置爲Manual,然後設置Location屬性到所需的位置。

using(Form toShow = new YourForm()) 
{ 
    toShow.StartPosition = FormStartPosition.Manual; 
    toShow.Location = MousePosition; 

    toShow.ShowDialog(); 
} 
+1

我的表單沒有Position屬性,只有Location。但StartPosition是主要問題,所以我會給你一個綠色標記 – 2010-03-20 16:34:54

+0

@John:對不起,快速寫下了答案。 「位置」是正確的屬性。 – 2010-03-20 16:49:04

2

你可以在你的新形式的onLoad()方法試試這個:

this.Location = new Point(paramX, paramY); 

其中paramX和paramY是代表鼠標的位置。

3

另外,不要忘記模態對話會在其他窗體停止執行,直到它們被關閉 - 所以您需要使用對話窗體本身進行定位,而不是在開窗器的後續行中進行定位 - 直到對話結束後纔會被調用。

此外,檢查形式的中StartPosition設置爲手動

相關問題