Browse Source

add MessageBox tool

HOME 1 year ago
parent
commit
d01791110e

+ 14 - 0
MessageBox/MessageBox.csproj

@@ -0,0 +1,14 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>WinExe</OutputType>
+    <TargetFrameworks>net20;net45;net5.0-windows</TargetFrameworks>
+    <UseWindowsForms>true</UseWindowsForms>
+    <RootNamespace>MBox</RootNamespace>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Reference Include="System.Windows.Forms" />
+  </ItemGroup>
+
+</Project>

+ 31 - 0
MessageBox/Program.cs

@@ -0,0 +1,31 @@
+using System;
+using System.Windows.Forms;
+
+namespace MBox
+{
+    internal static class Program
+    {
+        /// <summary>
+        ///  The main entry point for the application.
+        /// </summary>
+        [STAThread]
+        private static int Main(string[] args)
+        {
+            Application.EnableVisualStyles();
+            Application.SetCompatibleTextRenderingDefault(false);
+
+            var title = args.Length > 0 ? args[0] : "";
+            var text = args.Length > 1 ? args[1] : "";
+
+            var buttons = args.Length > 2 ? (MessageBoxButtons)Enum.Parse(typeof(MessageBoxButtons), args[2]) : 0;
+            var icon = args.Length > 3 ? (MessageBoxIcon)Enum.Parse(typeof(MessageBoxIcon), args[3]) : 0;
+            var def = args.Length > 4 ? (MessageBoxDefaultButton)Enum.Parse(typeof(MessageBoxDefaultButton), args[4]) : 0;
+            var opt = args.Length > 5 ? (MessageBoxOptions)Enum.Parse(typeof(MessageBoxOptions), args[5]) : 0;
+
+            var dr = MessageBox.Show(text, title, buttons, icon, def, opt);
+            Environment.ExitCode = (int)dr;
+            Environment.Exit((int)dr);
+            return (int)dr;
+        }
+    }
+}

+ 8 - 0
MessageBox/Properties/launchSettings.json

@@ -0,0 +1,8 @@
+{
+  "profiles": {
+    "MessageBox": {
+      "commandName": "Project",
+      "commandLineArgs": "操作确认 要退出吗 YesNo Warning Button1"
+    }
+  }
+}

+ 110 - 0
MessageBox/readme.md

@@ -0,0 +1,110 @@
+# 用法
+
+全部参数可选,按顺序传递
+
+`MessageBox [标题] [文字] [按钮] [图标] [默认焦点] [额外选项]` 
+
+选定值用进程 ExitCode 返回
+
+### 案例
+
+最后一个参数省略
+
+`MessageBox 操作确认 要退出吗 YesNo Warning Button1` 
+
+## 按钮
+
+    消息框包含“确定”按钮
+    OK
+    
+    消息框包含“确定”和“取消”按钮。
+    OKCancel,
+
+    消息框包含“中止”、“重试”和“忽略”按钮。
+    AbortRetryIgnore
+
+    消息框包含“是”、“否”和“取消”按钮。
+    YesNoCancel
+
+    消息框包含“是”和“否”按钮。
+    YesNo
+
+    消息框包含“重试”和“取消”按钮。
+    RetryCancel
+
+## 图标
+
+    消息框未包含符号。
+    None
+
+    该消息框包含一个符号,该符号是由一个红色背景的圆圈及其中的白色 X 组成的。
+    Error 
+
+    该消息框包含一个符号,该符号是由一个红色背景的圆圈及其中的白色 X 组成的。
+    Hand
+
+    该消息框包含一个符号,该符号是由一个红色背景的圆圈及其中的白色 X 组成的。
+    Stop 
+
+    该消息框包含一个符号,该符号是由一个圆圈和其中的一个问号组成的。不再建议使用问号消息图标,原因是该图标无法清楚地表示特定类型的消息,并且问号形式的消息表述可应用于任何消息类型。此外,用户还可能将问号消息符号与帮助信息混淆。因此,请不要在消息框中使用此问号消息符号。系统继续支持此符号只是为了向后兼容。
+    Question
+
+    该消息框包含一个符号,该符号是由一个黄色背景的三角形及其中的一个感叹号组成的。
+    Exclamation
+
+    该消息框包含一个符号,该符号是由一个黄色背景的三角形及其中的一个感叹号组成的。
+    Warning
+
+    该消息框包含一个符号,该符号是由一个圆圈及其中的小写字母 i 组成的。
+    Asterisk
+
+    该消息框包含一个符号,该符号是由一个圆圈及其中的小写字母 i 组成的。
+    Information
+
+## 默认焦点
+
+    消息框上的第一个按钮是默认按钮。
+    Button1
+
+    消息框上的第二个按钮是默认按钮。
+    Button2
+
+    消息框上的第三个按钮是默认按钮。
+    Button3
+
+## 额外选项
+
+    消息框显示在活动桌面上。
+    ServiceNotification
+
+    消息框显示在活动桌面上。
+    DefaultDesktopOnly
+
+    消息框文本右对齐。
+    RightAlign
+
+    指定消息框文本按从右到左的阅读顺序显示。
+    RtlReading
+
+## 返回值
+
+    对话框的返回值是 OK(通常从标签为“确定”的按钮发送)。
+    1
+
+    对话框的返回值是 Cancel(通常从标签为“取消”的按钮发送)。
+    2
+
+    对话框的返回值是 Abort(通常从标签为“中止”的按钮发送)。
+    3
+
+    对话框的返回值是 Retry(通常从标签为“重试”的按钮发送)。
+    4
+
+    对话框的返回值是 Ignore(通常从标签为“忽略”的按钮发送)。
+    5
+
+    对话框的返回值是 Yes(通常从标签为“是”的按钮发送)。
+    6
+
+    对话框的返回值是 No(通常从标签为“否”的按钮发送)。
+    7

+ 6 - 0
StrangeTools.sln

@@ -14,6 +14,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FileNameCharsetConvert", "F
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FileExpander", "FileExpander\FileExpander.csproj", "{7A3E4609-7FDD-4CE9-8671-82F7049F51B0}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MessageBox", "MessageBox\MessageBox.csproj", "{7EDCED25-C644-4545-BDF1-E6D13ECB3C0D}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
@@ -32,6 +34,10 @@ Global
 		{7A3E4609-7FDD-4CE9-8671-82F7049F51B0}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{7A3E4609-7FDD-4CE9-8671-82F7049F51B0}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{7A3E4609-7FDD-4CE9-8671-82F7049F51B0}.Release|Any CPU.Build.0 = Release|Any CPU
+		{7EDCED25-C644-4545-BDF1-E6D13ECB3C0D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{7EDCED25-C644-4545-BDF1-E6D13ECB3C0D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{7EDCED25-C644-4545-BDF1-E6D13ECB3C0D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{7EDCED25-C644-4545-BDF1-E6D13ECB3C0D}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE