我如何更改MessageBox的位置?

问题描述 投票:11回答:5

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

MessageBox.Show("Hello");
c# messagebox
5个回答
11
投票

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

您的问题的解决方案:


2
投票

您将需要创建一个新的窗体,该窗体继承自MessageBox窗体。这是访问头寸属性的唯一方法。


2
投票

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


2
投票

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


0
投票

由于我已经在项目中使用AutoIt来完成其他几个任务,所以我只创建了另一个线程来移动消息框

using System.Threading;
using AutoIt;
//Namespace, class, function stuffs
//New thread BEFORE create message box - safety measure
Thread autoItThread = new Thread(delegate ()
                {
                    AutoItX.WinWait("New Message box");
                    AutoItX.WinMove("New Message box", "This box will be moved", 400, 300);
                });
                autoItThread.Start();
MessageBox.Show("This box will be moved", "New Message box");

请注意

  • 坐标400,300是绝对的。 0,0将在左上角。
  • 这取决于屏幕。如果要准确,则需要其他代码来确定位置]
  • 此任务是更改消息框的绝对位置,而不是移动它。
© www.soinside.com 2019 - 2024. All rights reserved.