我需要更改消息框位置。我不希望它出现在页面的中心。
MessageBox.Show("Hello");
答案 0 :(得分:11)
通常,您无法更改标准消息框的启动位置。
您的问题的解决方案:
答案 1 :(得分:2)
您需要创建一个继承自MessageBox表单的新表单。这是访问位置属性的唯一方法。
答案 2 :(得分:2)
有一种方法可以改变位置,但它对于这么小的任务来说太复杂了。
如果您确实需要更改其位置,则可以显示它,然后使用GetForegroundWindow
获取窗口句柄,然后使用MoveWindow
到您想要的位置。
但是,正如我已经说过的那样,这太复杂了。
只需创建一个带有标签的自己的表单,然后单击“确定”按钮即可。将按钮设置为默认窗口按钮,然后在Form1中执行MyWndName.ShowDialog();
答案 3 :(得分:2)
您可以做的是创建一个新窗口,将属性AllowTransparency设置为true并将Background设置为Transparent。在该窗口中,您可以放置TextBlock或标签,还可以添加Yes / No Buttons。使用Canvs.SetTop(Window,TopPosition)和Canvas.SetLeft(Window,LeftPosition)设置此窗口的位置。接下来,使用Show()或ShowDialog()方法调用窗口。
答案 4 :(得分: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
将在左上角。