static public class TopMostMessageBox { static public DialogResult Show(string message) { return Show(message, string.Empty, MessageBoxButtons.OK); } static public DialogResult Show(string message, string title) { return Show(message, title, MessageBoxButtons.OK); } static public DialogResult Show(string message, string title, MessageBoxButtons buttons) { // Create a host form that is a TopMost window which will be the // parent of the MessageBox. Form topmostForm = new Form(); // We do not want anyone to see this window so position it off the // visible screen and make it as small as possible topmostForm.Size = new System.Drawing.Size(1, 1); topmostForm.StartPosition = FormStartPosition.Manual; System.Drawing.Rectangle rect = SystemInformation.VirtualScreen; topmostForm.Location = new System.Drawing.Point(rect.Bottom + 10, rect.Right + 10); topmostForm.Show(); // Make this form the active form and make it TopMost topmostForm.Focus(); topmostForm.BringToFront(); topmostForm.TopMost = true; // Finally show the MessageBox with the form just created as its owner DialogResult result = MessageBox.Show(topmostForm, message, title, buttons); topmostForm.Dispose(); // clean it up all the way return result; } }
Showing a modal dialog box or form when the application is not running in UserInteractive mode is not a valid operation. Specify the ServiceNotification or DefaultDesktopOnly style to display a notification from a service application.
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)