Donate

How To Change Position A Windows Forms MessageBox in C#

Here's a tip from CODE PROJECT on positioning message box. This utilize c++ dlls.
using System.Runtime.InteropServices;  
 using System.Threading;  
 [DllImport("user32.dll")]  
 static extern IntPtr FindWindow(IntPtr classname, string title); // extern method: FindWindow  
 [DllImport("user32.dll")]  
 static extern void MoveWindow(IntPtr hwnd, int X, int Y, int nWidth, int nHeight, bool rePaint);   
 // extern method: MoveWindow  
 [DllImport("user32.dll")]  
 static extern bool GetWindowRect(IntPtr hwnd, out Rectangle rect);   
 // extern method: GetWindowRect  
 void FindAndMoveMsgBox(int x, int y, bool repaint, string title)  
 {  
   Thread thr = new Thread(() => // create a new thread  
   {  
     IntPtr msgBox = IntPtr.Zero;  
     // while there's no MessageBox, FindWindow returns IntPtr.Zero  
     while ((msgBox = FindWindow(IntPtr.Zero, title)) == IntPtr.Zero) ;  
     // after the while loop, msgBox is the handle of your MessageBox  
     Rectangle r = new Rectangle();  
     GetWindowRect(msgBox, out r); // Gets the rectangle of the message box  
     MoveWindow(msgBox /* handle of the message box */, x , y,   
       r.Width - r.X /* width of originally message box */,   
       r.Height - r.Y /* height of originally message box */,   
       repaint /* if true, the message box repaints */);  
   });  
   thr.Start(); // starts the thread  
 }  

Cheers!

Comments

Donate

Popular Posts From This Blog

WPF CRUD Application Using DataGrid, MVVM Pattern, Entity Framework, And C#.NET

How To Insert Or Add Emojis In Microsoft Teams Status Message

TypeScript Error Or Bug: The term 'tsc' is not recognized as the name of a cmdlet, function, script file, or operable program.