Reputation: 161
I need to change the message box location. I don't want it to be in the center of the page.
MessageBox.Show("Hello");
Upvotes: 16
Views: 70868
Reputation: 12632
Normally, you can't change startup location of standard message box.
Solutions for your question:
Upvotes: 14
Reputation: 378
Since I already use AutoIt for several other tasks in my project so I just create another thread to move the Message box
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");
Please note
400,300
is absolute. 0,0
will be top left corner. Upvotes: 1
Reputation: 422
What you can do is to create a new window, set the property AllowsTransparency to true and set the Background to Transparent. In that window you can put a TextBlock, or a label and also add Yes/No Buttons. Set the location of this window using Canvs.SetTop(Window,TopPosition) and Canvas.SetLeft(Window,LeftPosition). next, call the window with the method Show() or ShowDialog().
Upvotes: 2
Reputation: 1278
There is a way to change the location, but its way too complicated for such a small task.
If you really need to change its location, you could display it, then use GetForegroundWindow
to get a window handle, then MoveWindow
to your desired location.
But, as I already mensioned, this is way too complicated.
Just create your own form with a label on it an a "OK" button. Set the button as the default window button, and then, in Form1 do MyWndName.ShowDialog();
Upvotes: 3
Reputation: 21899
You will need to create a new form that inherits from the MessageBox form. That is the only way to access the position properties.
Upvotes: 2