2011-03-13 145 views
10

我需要更改消息框位置。我不希望它位於頁面的中心。如何更改MessageBox位置?

MessageBox.Show("Hello"); 
+19

我已將您的標題從'massagebox'(聽起來很可愛)改爲'messagebox'。 – jgauffin 2011-03-13 11:48:43

+2

@jgauffin,標籤'winforms'有點不正確,因爲'MessageBox'也可以在WPF中使用。 – 2011-03-13 12:05:35

+0

[Winforms的可能的重複 - 如何使MessageBox出現在MainForm的中心?](http://stackoverflow.com/questions/2576156/winforms-how-can-i-make-messagebox-appear-centered-on-mainform ) – 2011-03-13 13:30:41

回答

2

您將需要創建一個從MessageBox窗體繼承的新窗體。這是訪問頭寸屬性的唯一方法。

11

通常情況下,您不能更改標準消息框的啓動位置。

解決方案爲您的問題:

2

還有就是要改變位置的方式,但它太複雜,這樣一個小任務。
如果您確實需要更改其位置,則可以顯示它,然後使用GetForegroundWindow獲取窗口句柄,然後使用MoveWindow到您想要的位置。但是,由於我已經有所規劃,這太複雜了。
只需創建一個帶有標籤的自己的表單,一個「確定」按鈕。將該按鈕設置爲默認窗口按鈕,然後在Form1中執行MyWndName.ShowDialog();

+0

非常感謝你我喜歡你說的和它的工作 – guy 2011-03-13 12:06:09

+0

你不能確保'GetForegroundWindow'會給你創建消息框的句柄。可能發生的另一個應用程序將在那一刻前往前臺。 – 2011-03-13 13:18:15

2

您可以做的是創建一個新窗口,將屬性AllowsTransparency設置爲true並將Background設置爲Transparent。在該窗口中,您可以放置​​一個TextBlock或一個標籤,並添加Yes/No Buttons。使用Canvs.SetTop(Window,TopPosition)和Canvas.SetLeft(Window,LeftPosition)設置此窗口的位置。接下來,使用Show()或ShowDialog()方法調用窗口。