如何更改MessageBox位置?

我需要更改消息框位置。 我不希望它位于页面的中心。

MessageBox.Show("Hello"); 

通常,您无法更改标准消息框的启动位置。

您的问题的解决方案:

  • 创建自己的自定义消息框。 在CodeProject上有创建的例子。
  • 使用Windows Hook过程(WinAPI)的复杂方式。

您需要创建一个inheritance自MessageBox表单的新表单。 这是访问位置属性的唯一方法。

有一种方法可以改变位置,但它对于这么小的任务来说太复杂了。
如果您确实需要更改其位置,则可以显示它,然后使用GetForegroundWindow获取窗口句柄,然后将MoveWindow到所需位置。
但是,正如我已经说过的那样,这太复杂了。
只需创建一个带有标签的自己的表单,然后单击“确定”按钮即可。 将按钮设置为默认窗口按钮,然后在Form1中执行MyWndName.ShowDialog();

您可以做的是创建一个新窗口,将属性AllowTransparency设置为true并将Background设置为Transparent。 在该窗口中,您可以放置​​TextBlock或标签,还可以添加Yes / No Buttons。 使用Canvs.SetTop(Window,TopPosition)和Canvas.SetLeft(Window,LeftPosition)设置此窗口的位置。 接下来,使用方法Show()或ShowDialog()调用窗口。