C#: MessageBox

时间:2023-03-08 23:19:18
C#: MessageBox

系统学习下Form里用到最多的MessageBox

MessageBox有21个重载的Show函数。。。都是返回DialogResult

     public enum DialogResult
     {
         None,
         OK,
         Cancel,
         Abort,
         Retry,
         Ignore,
         Yes,
         No
     }

public enum DialogResult

其中参数里带IWin32Window的函数用不太到,就不解释了

1. public static DialogResult Show(string text);

最简单的Show函数

2. public static DialogResult Show(string text, string caption);

带标题的Show函数

3. public static DialogResult Show(string text, string caption, MessageBoxButtons buttons);

     public enum MessageBoxButtons
     {
         OK,
         OKCancel,
         AbortRetryIgnore,
         YesNoCancel,
         YesNo,
         RetryCancel
     }

public enum MessageBoxButtons

这里加入了MessageBoxButtons,一般是DialogResult的组合

4. public static DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon);

     public enum MessageBoxIcon
     {
         Asterisk = 0x40,
         Error = 0x10,
         Exclamation = 0x30,
         Hand = 0x10,
         Information = 0x40,
         None = ,
         Quesion = 0x20,
         Stop = 0x10,
         Warning = 0x30
     }

public enum MessageBoxIcon

引入了图标

5. public static DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton);

     public enum MessageBoxDefaultButton
     {
         Button1 = ,
         Button2 = 0x100,
         Button3 = 0x200
     }

public enum MessageBoxDefaultButton

这里的MessageBoxDefaultButton就是在窗口出现后直接回车的Button,如果没有这个参数,就是MessageBoxDefaultButton.Button1,可以用下面这个代码测试下

DialogResult result = MessageBox.Show("hello world!!", "Say hello", MessageBoxButtons.OKCancel, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2);
MessageBox.Show(result.ToString());

6. public static DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton, MessageBoxOptions options);

     public enum MessageBoxOptions
     {
         DefaultDesktopOnly = 0x20000, //显示于桌面上
         RightAlign = 0x80000,         //放在右边
         RtlReading = 0x100000,       //从右向左读,当然单个单词的顺序还是不变
         ServiceNotification = 0x200000  //跟第一个一样
     }

public enum MessageBoxOptions

这个一般用不太到了。。

7. public static DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton, MessageBoxOptions options, bool displayHelpButton);

这个不常用到,因为点HelpButton啥都没有

8. public static DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton, MessageBoxOptions options, string helpFilePath);

Ex:

DialogResult result = MessageBox.Show("hello world!!", "Say hello", MessageBoxButtons.OKCancel, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2, MessageBoxOptions.RightAlign, @"C:\Users\Administrator\Desktop\user.txt");

9. public static DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton, MessageBoxOptions options, string helpFilePath, string keyword);

这个函数好像不能用。。

10. public static DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton, MessageBoxOptions options, string helpFilePath, HelpNavigator navigator);

     public enum HelpNavigator
     {
         AssociateIndex = -,
         Find = -,
         Index = -,
         KeywordIndex = -,
         TableOfContents = -,
         Topic = -,
         TopicId = -
     }

public enum HelpNavigator

不知道怎么用。。

11. public static DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton, MessageBoxOptions options, string helpFilePath, HelpNavigator navigator, object param);

更不知道这个object存在的意义了。。

综上所述,平常基本只是用到了1,2,3,4