I need to change the message box location. I don\'t want it to be in the center of the page.
MessageBox.Show(\"Hello\");
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();
You will need to create a new form that inherits from the MessageBox form. That is the only way to access the position properties.
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().
Normally, you can't change startup location of standard message box.
Solutions for your question:
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.