SuperDesign/Source/开发辅助工具/FrmMessageBox.cs
2020-11-28 16:15:24 +08:00

239 lines
12 KiB
C#

using ryCommon;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace
{
public partial class FrmMessageBox : Form
{
public FrmMessageBox()
{
InitializeComponent();
}
private void LoadPram()
{
ryCommon.Storage Stor = new ryCommon.Storage();
Stor.LoadFromFile(Application.StartupPath+ "\\UserDb\\MessageBox.xml");
Stor.SelectNodeBySet();
CbbTitle.Text = Stor.GetAttrValue("Title");
TxtContent.Text= Stor.GetAttrValue("Content");
switch(Stor.GetAttrValue("Icon"))
{
case "MessageBoxIcon.None":
RbIconNone.Checked = true;
break;
case "MessageBoxIcon.Error":
RbIconError.Checked = true;
break;
case "MessageBoxIcon.Information":
RbIconInformation.Checked = true;
break;
case "MessageBoxIcon.Question":
RbIconQuestion.Checked = true;
break;
case "MessageBoxIcon.Warning":
RbIconWarning.Checked = true;
break;
}
switch (Stor.GetAttrValue("Btn"))
{
case "MessageBoxButtons.OK":
RbBtnOK.Checked = true;
break;
case "MessageBoxButtons.OKCancel":
RbBtnOKCancel.Checked = true;
break;
case "MessageBoxButtons.RetryCancel":
RbBtnRetryCancel.Checked = true;
break;
case "MessageBoxButtons.AbortRetryIgnore":
RbBtnAbortRetryIgnore.Checked = true;
break;
case "MessageBoxButtons.YesNo":
RbBtnYesNo.Checked = true;
break;
case "MessageBoxButtons.YesNoCancel":
RbBtnYesNoCancel.Checked = true;
break;
}
switch (Stor.GetAttrValue("Default_Btn"))
{
case "MessageBoxDefaultButton.Button1":
RbDefaultButton1.Checked = true;
break;
case "MessageBoxDefaultButton.Button2":
RbDefaultButton2.Checked = true;
break;
case "MessageBoxDefaultButton.Button3":
RbDefaultButton3.Checked = true;
break;
}
ChkTopMost.Checked = Stor.GetAttrValue("TopMost",false);
}
private void BtnCreate_Click(object sender, EventArgs e)
{
string title = CbbTitle.Text.Replace("\r","").Replace("\n", "");
string content = TxtContent.Text.Replace("\r", "\\r").Replace("\n", "\\n").Replace("\"", "\\\"");
if(ChkTitleIsPram.Checked)
{
if (title == "") { MessageBox.Show("标题变量不能为空", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);return; }
if (!Strings.IsEngOrNum(title.Replace("_","")) || title.Substring(0,1).IsInt()) { MessageBox.Show("变量只能是英文、下横杠或数字,并且不能以数字开头", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; }
}
if (ChkContentIsPram.Checked)
{
if (content == "") { MessageBox.Show("文本信息变量不能为空", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; }
if (!Strings.IsEngOrNum(content.Replace("_", "")) || content.Substring(0, 1).IsInt()) { MessageBox.Show("文本信息只能是英文、下横杠或数字,并且不能以数字开头", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; }
}
MessageBoxButtons btn = MessageBoxButtons.OK;
MessageBoxIcon icon = MessageBoxIcon.None;
MessageBoxDefaultButton default_btn = MessageBoxDefaultButton.Button1;
MessageBoxOptions option = MessageBoxOptions.DefaultDesktopOnly;
List<DialogResult> dg = new List<DialogResult>() ;
string MessageBoxButtons_str = "";
string MessageBoxIcon_str = "";
string MessageBoxDefaultButton_str = "";
string option_str = "";
List<string> DialogResult_str =new List<string>();
#region
if (RbIconError.Checked) { icon = MessageBoxIcon.Error; MessageBoxIcon_str = "MessageBoxIcon.Error"; }
else if (RbIconInformation.Checked) { icon = MessageBoxIcon.Information; MessageBoxIcon_str = "MessageBoxIcon.Information"; }
else if (RbIconNone.Checked) { icon = MessageBoxIcon.None; MessageBoxIcon_str = "MessageBoxIcon.None"; }
else if (RbIconQuestion.Checked) { icon = MessageBoxIcon.Question; MessageBoxIcon_str = "MessageBoxIcon.Question"; }
else if (RbIconWarning.Checked) { icon = MessageBoxIcon.Warning; MessageBoxIcon_str = "MessageBoxIcon.Warning"; }
#endregion
#region
if (RbBtnOK.Checked) { btn = MessageBoxButtons.OK; MessageBoxButtons_str = "MessageBoxButtons.OK"; }
else if (RbBtnOKCancel.Checked) { btn = MessageBoxButtons.OKCancel; MessageBoxButtons_str = "MessageBoxButtons.OKCancel"; }
else if (RbBtnRetryCancel.Checked) { btn = MessageBoxButtons.RetryCancel; MessageBoxButtons_str = "MessageBoxButtons.RetryCancel"; }
else if (RbBtnAbortRetryIgnore.Checked) { btn = MessageBoxButtons.AbortRetryIgnore; MessageBoxButtons_str = "MessageBoxButtons.AbortRetryIgnore"; }
else if (RbBtnYesNo.Checked) { btn = MessageBoxButtons.YesNo; MessageBoxButtons_str = "MessageBoxButtons.YesNo"; }
else if (RbBtnYesNoCancel.Checked) { btn = MessageBoxButtons.YesNoCancel; MessageBoxButtons_str = "MessageBoxButtons.YesNoCancel"; }
#endregion
#region
if (ChkResultAbort.Checked && ChkResultAbort.Enabled) { dg.Add(DialogResult.Abort); DialogResult_str.Add("DialogResult.Abort"); }
if (ChkResultCancel.Checked && ChkResultCancel.Enabled) { dg.Add(DialogResult.Cancel); DialogResult_str.Add("DialogResult.Cancel"); }
if (ChkResultIgnore.Checked && ChkResultIgnore.Enabled) { dg.Add(DialogResult.Ignore); DialogResult_str.Add("DialogResult.Ignore"); }
if (ChkResultNo.Checked && ChkResultNo.Enabled) { dg.Add(DialogResult.No); DialogResult_str.Add("DialogResult.No"); }
if (ChkResultOK.Checked && ChkResultOK.Enabled) { dg.Add(DialogResult.OK); DialogResult_str.Add("DialogResult.OK"); }
if (ChkResultRetry.Checked && ChkResultRetry.Enabled) { dg.Add(DialogResult.Retry); DialogResult_str.Add("DialogResult.Retry"); }
if (ChkResultYes.Checked && ChkResultYes.Enabled) { dg.Add(DialogResult.Yes); DialogResult_str.Add("DialogResult.Yes"); }
#endregion
#region
if (RbDefaultButton1.Checked) { default_btn = MessageBoxDefaultButton.Button1; MessageBoxDefaultButton_str = "MessageBoxDefaultButton.Button1"; }
else if (RbDefaultButton2.Checked) { default_btn = MessageBoxDefaultButton.Button2; MessageBoxDefaultButton_str = "MessageBoxDefaultButton.Button2"; }
else if (RbDefaultButton3.Checked) { default_btn = MessageBoxDefaultButton.Button3; MessageBoxDefaultButton_str = "MessageBoxDefaultButton.Button3"; }
#endregion
if (ChkTopMost.Checked) { option = MessageBoxOptions.DefaultDesktopOnly;option_str = "MessageBoxOptions.DefaultDesktopOnly"; }
MessageBox.Show(content.Replace("\\r","\r").Replace("\\n", "\n"), title, btn, icon, default_btn, option);
string create_str = "MessageBox.Show(\""+ content + "\",\""+ title + "\"";
if (ChkTitleIsPram.Checked && !ChkContentIsPram.Checked)
{
create_str = "MessageBox.Show(\"" + content + "\"," + title;
}
else if (!ChkTitleIsPram.Checked && ChkContentIsPram.Checked)
{
create_str = "MessageBox.Show(" + content + ",\"" + title + "\"";
}
else if (ChkTitleIsPram.Checked && ChkContentIsPram.Checked)
{
create_str = "MessageBox.Show(" + content + "," + title;
}
if(option_str != "")
{ create_str += "," + MessageBoxButtons_str + "," + MessageBoxIcon_str + "," + MessageBoxDefaultButton_str + "," + option_str + ")"; }
else if (MessageBoxDefaultButton_str != "MessageBoxDefaultButton.Button1" && option_str == "")
{ create_str += "," + MessageBoxButtons_str + "," + MessageBoxIcon_str + "," + MessageBoxDefaultButton_str + ")"; }
else if (MessageBoxDefaultButton_str == "MessageBoxDefaultButton.Button1" && option_str == "")
{ create_str += "," + MessageBoxButtons_str + "," + MessageBoxIcon_str + ")"; }
else if (MessageBoxButtons_str == "MessageBoxButtons.OK" && MessageBoxIcon_str == "MessageBoxIcon.None" && MessageBoxDefaultButton_str == "MessageBoxDefaultButton.Button1" && option_str == "")
{ create_str += ")"; }
else
{
{ create_str += ")"; }
}
if (dg.Count == 0) { create_str += ";"; }
else
{
create_str = "switch(" + create_str + ")";
create_str += "\r\n{";
for (int i = 0; i < DialogResult_str.Count; i++)
{
create_str += "\r\n case "+ DialogResult_str[i]+ ":\r\n break;";
}
create_str += "\r\n}";
}
ryCommon.RyFiles.CopyToClip(create_str);
ryCommon.Storage Stor = new ryCommon.Storage();
Stor.LoadFromFile(Application.StartupPath + "\\UserDb\\MessageBox.xml");
Stor.SelectNodeBySet();
Stor.SetAttrValue("Title", CbbTitle.Text);
Stor.SetAttrValue("Content", TxtContent.Text);
Stor.SetAttrValue("Icon",MessageBoxIcon_str);
Stor.SetAttrValue("Btn", MessageBoxButtons_str);
Stor.SetAttrValue("Default_Btn", MessageBoxDefaultButton_str);
Stor.SetAttrValue("TopMost", ChkTopMost.Checked);
Stor.SaveToFile(Application.StartupPath + "\\UserDb\\MessageBox.xml");
this.DialogResult=DialogResult.OK;
}
private void InitResult()
{
for (int i = 0; i < GroupResult.Controls.Count; i++)
{
if (GroupResult.Controls[i] is CheckBox)
{
GroupResult.Controls[i].Enabled = false;
}
}
}
private void RbBtnOK_CheckedChanged(object sender, EventArgs e)
{
InitResult();
}
private void RbBtnOKCancel_CheckedChanged(object sender, EventArgs e)
{
InitResult();
RadioButton rb_btn = (RadioButton)sender;
if (rb_btn.Checked) { ChkResultOK.Enabled = true;ChkResultCancel.Enabled = true; }
}
private void RbBtnYesNo_CheckedChanged(object sender, EventArgs e)
{
InitResult();
RadioButton rb_btn = (RadioButton)sender;
if (rb_btn.Checked) { ChkResultYes.Enabled = true; ChkResultNo.Enabled = true; }
}
private void RbBtnYesNoCancel_CheckedChanged(object sender, EventArgs e)
{
InitResult();
RadioButton rb_btn = (RadioButton)sender;
if (rb_btn.Checked) { ChkResultYes.Enabled = true; ChkResultNo.Enabled = true;ChkResultCancel.Enabled = true; }
}
private void RbBtnRetryCancel_CheckedChanged(object sender, EventArgs e)
{
InitResult();
RadioButton rb_btn = (RadioButton)sender;
if (rb_btn.Checked) { ChkResultRetry.Enabled = true; ChkResultCancel.Enabled = true; }
}
private void RbBtnAbortRetryIgnore_CheckedChanged(object sender, EventArgs e)
{
InitResult();
RadioButton rb_btn = (RadioButton)sender;
if (rb_btn.Checked) { ChkResultAbort.Enabled = true; ChkResultRetry.Enabled = true; ChkResultIgnore.Enabled = true; }
}
private void FrmMessageBox_Load(object sender, EventArgs e)
{
LoadPram();
}
}
}