Attention: We are retiring the ASP.NET Community Blogs. Learn more >

Custom Dialog as MessageBox

I found from net a nice code to creat a custom dialog as a message box code goes like as follows.

Any idea please give comments

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Runtime.InteropServices;
using System.Windows.Forms;

namespace ShowMessage
{
   /// <summary>
   /// Summary description for Form1.
   /// </summary>
   public class frmMain : System.Windows.Forms.Form
   {
      private System.Windows.Forms.Button btnQuit;
      private System.Windows.Forms.Button btnTest;
      /// <summary>
      /// Required designer variable.
      /// </summary>
      private System.ComponentModel.Container components = null;



      /// <summary>
      /// The main entry point for the application.
      /// </summary>
      [STAThread]
      static void Main()
      {
         Application.Run(new frmMain());
      }

      private void btnQuit_Click(object sender, System.EventArgs e)
      {
         // Exit the application.
         Close();
      }

      // MessageBoxEx() provides features, including a language identifier,
      // not found in the .NET Framework version. This function also enables
      // you to add special buttons and other features to the message box.
      [DllImport("user32.dll", CharSet=CharSet.Auto)]
      public static extern int MessageBoxEx(
         IntPtr hWnd,
         [MarshalAs(UnmanagedType.LPTStr)]String Message,
         [MarshalAs(UnmanagedType.LPTStr)]String Header,
         UInt32 Type,
         UInt16 LanguageID);

      // Create a list of buttons.
      public class MBButton
      {
         public const UInt32 MB_OK =                 0x00000000;
         public const UInt32 MB_OKCANCEL =           0x00000001;
         public const UInt32 MB_ABORTRETRYIGNORE =   0x00000002;
         public const UInt32 MB_YESNOCANCEL =        0x00000003;
         public const UInt32 MB_YESNO =              0x00000004;
         public const UInt32 MB_RETRYCANCEL =        0x00000005;
         public const UInt32 MB_CANCELTRYCONTINUE =  0x00000006;
         public const UInt32 MB_HELP =               0x00004000;
      }

      // Create a list of icon types.
      public class MBIcon
      {
         public const UInt32 MB_ICONHAND =        0x00000010;
         public const UInt32 MB_ICONQUESTION =    0x00000020;
         public const UInt32 MB_ICONEXCLAMATION = 0x00000030;
         public const UInt32 MB_ICONASTERISK =    0x00000040;
         public const UInt32 MB_USERICON =        0x00000080;
         public const UInt32 MB_ICONWARNING =     MB_ICONEXCLAMATION;
         public const UInt32 MB_ICONERROR =       MB_ICONHAND;
         public const UInt32 MB_ICONINFORMATION = MB_ICONASTERISK;
         public const UInt32 MB_ICONSTOP =        MB_ICONHAND;
      }

      // Create a list of default buttons.
      public class MBDefButton
      {
         public const UInt32 MB_DEFBUTTON1 =   0x00000000;
         public const UInt32 MB_DEFBUTTON2 =   0x00000100;
         public const UInt32 MB_DEFBUTTON3 =   0x00000200;
         public const UInt32 MB_DEFBUTTON4 =   0x00000300;
      }

      // Create a list of message box modalities.
      public class MBModal
      {
         public const UInt32 MB_APPLMODAL =    0x00000000;
         public const UInt32 MB_SYSTEMMODAL =  0x00001000;
         public const UInt32 MB_TASKMODAL =    0x00002000;
      }

      // Create a list of special message box attributes.
      public class MBSpecial
      {
         public const UInt32 MB_SETFOREGROUND =               0x00010000;
         public const UInt32 MB_DEFAULT_DESKTOP_ONLY =        0x00020000;
         public const UInt32 MB_SERVICE_NOTIFICATION_NT3X =   0x00040000;
         public const UInt32 MB_TOPMOST =                     0x00040000;
         public const UInt32 MB_RIGHT =                       0x00080000;
         public const UInt32 MB_RTLREADING =                  0x00100000;
         public const UInt32 MB_SERVICE_NOTIFICATION =        0x00200000;
      }

      // Return values can use an enum in place of a class.
      public enum MBReturn
      {
         IDOK =         1,
         IDCANCEL =     2,
         IDABORT =      3,
         IDRETRY =      4,
         IDIGNORE =     5,
         IDYES =        6,
         IDNO =         7,
         IDCLOSE =      8,
         IDHELP =       9,
         IDTRYAGAIN =   10,
         IDCONTINUE =   11,
         IDTIMEOUT =    32000
      }

      private void btnTest_Click(object sender, System.EventArgs e)
      {
         MBReturn Result;  // Result of user input.

         // Display a message box.
         Result = (MBReturn)MessageBoxEx(this.Handle,
            "Your message Here
            "MessageBox Title Here",
            MBButton.MB_CANCELTRYCONTINUE | MBButton.MB_HELP |
            MBIcon.MB_ICONEXCLAMATION |
            MBModal.MB_SYSTEMMODAL |
            MBDefButton.MB_DEFBUTTON4 |
            MBSpecial.MB_TOPMOST,
            0);

         // Determine a result.
         switch (Result)
         {
            case MBReturn.IDCANCEL:
               MessageBox.Show("Cancel");
               break;
            case MBReturn.IDTRYAGAIN:
               MessageBox.Show("Try Again");
               break;
            case MBReturn.IDCONTINUE:
               MessageBox.Show("Continue");
               break;
            default:
               MessageBox.Show("?");
               break;
         }
      }

      private void frmMain_HelpRequested(object sender,
System.Windows.Forms.HelpEventArgs hlpevent)
      {
         // Display information about the help request.
         MessageBox.Show("Here is your help message:\r\n" +
            "\r\nSender: " + sender.ToString() +
            "\r\nMouse Position: " + hlpevent.MousePos,
            "Title
            MessageBoxButtons.OK,
            MessageBoxIcon.Information);

         // Tell Windows that the help request was handled.
         hlpevent.Handled = true;
      }
}
}

Thanks and Regards,

Suresh[Microsoft MVP.Net,India | MCAD.NET(CM) | MCSD.NET(EA)]

1 Comment

Comments have been disabled for this content.