using System.Windows.Forms; using Dongke.IBOSS.PRD.Basics.BaseResources; namespace Dongke.IBOSS.PRD.Basics.BaseControls { /// /// 系统消息(N、I、W、E、Q) /// /// /// {N|I|W|E|Q}[O|YN|YNC|OC|RC|ARI]_[1|2|3]_{模块名缩写}_{C|S}_{消息SEQ} /// {N|I|W|E|Q}:消息类型 /// N:无(默认按钮OK) /// I:Information(默认按钮OK) /// W:Warning(默认按钮OK) /// E:Error(默认按钮OK) /// Q:Question(默认按钮Yes、No) /// [YN|YNC|OC|RC|ARI]:按钮模式(可以忽略) /// O :OK(默认按钮1) /// YN :Yes、No(默认按钮2) /// YNC:Yes、No、Cancel(默认按钮3) /// OC :OK、Cancel(默认按钮1) /// RC :Retry、Cancel(默认按钮1) /// ARI:Abort、Retry、Ignore(默认按钮2) /// [1|2|3]:默认按钮(可以忽略) /// {C|S}:分类 /// C:客户端消息 /// S:服务端消息 /// 消息类型默认按钮: /// N:N_XXX=NO_XXX=N_1_XXX=NO_1_XXX /// I:I_XXX=IO_XXX=I_1_XXX=IO_1_XXX /// W:W_XXX=WO_XXX=W_1_XXX=WO_1_XXX /// E:E_XXX=EO_XXX=E_1_XXX=EO_1_XXX /// Q:Q_XXX=QYN_XXX=Q_2_XXX=QYN_2_XXX /// public enum DKMessageCode { #region Information Serivce /// /// 根据查询条件,没有查询到相应的数据。 /// I_CMN_S_001, /// /// 操作完成 /// I_CMN_S_002, #endregion Information Serivce #region Information Client #endregion Information Client #region Warning Serivce /// /// 服务器时间(账务日期异常) /// W_CMN_S_001, /// /// 验证失败,是否重新登录 /// WYN_CMN_S_002, /// /// 在其他客户端登录,是否重新登录 /// WYN_CMN_S_003, /// /// 不允许进行该操作。原因:{0} /// W_CMN_S_004, /// /// 数据已被修改 /// W_CMN_S_005, /// /// 数据重复 /// W_CMN_S_006, #endregion Warning Serivce #region Warning Client /// /// 没有选择任何数据。 /// W_CMN_C_001, /// /// {0}不能大于账务日期({1})。 /// W_CMN_C_002, /// /// {0}是必须输入项目,请输入{0}。 /// W_CMN_C_003, /// /// 输入的{0}不能和{1}相同,请重新输入。 /// W_CMN_C_004, /// /// 输入的条码({0})格式不正确,请重新输入。条码必须以10位数字结尾。 /// W_CMN_C_005, /// /// 不允许进行该操作。原因:{0} /// W_CMN_C_006, #endregion Warning Client #region Error Serivce /// /// 系统服务端异常 /// E_CMN_S_001, #endregion Error Serivce #region Error Client /// /// 系统客户端异常 /// E_CMN_C_001, #endregion Error Client #region Question Serivce #endregion Question Serivce #region Question Client #endregion Question Client } /// /// 显示可包含文本、按钮和符号(通知并指示用户)的消息框 /// public static class DKMessageBox { /// /// 显示具有指定文本、标题、按钮、图标、默认按钮和选项的消息框 /// /// 窗体 /// 消息编码 /// 其中包含零个或多个要设置格式的对象 /// 消息结果 public static DialogResult ShowDialog(Form owner, DKMessageCode messageCode, params string[] args) { string code = messageCode.ToString(); MessageBoxIcon mIcon = MessageBoxIcon.None; MessageBoxButtons mButtons = MessageBoxButtons.OK; MessageBoxDefaultButton mDefaultButton = MessageBoxDefaultButton.Button1; DKMessageBox.SetStyle(code, ref mIcon, ref mButtons, ref mDefaultButton); string message = string.Format(Messages.ResourceManager.GetString(code), args); return MessageBox.Show(owner, message, owner.Text, mButtons, mIcon, mDefaultButton); } /// /// 显示具有指定文本、标题、按钮、图标、默认按钮和选项的消息框 /// /// 窗体 /// 详细信息 /// 消息编码 /// 其中包含零个或多个要设置格式的对象 /// 消息结果 public static DialogResult ShowDialog(Form owner, string detail, DKMessageCode messageCode, params string[] args) { string code = messageCode.ToString(); MessageBoxIcon mIcon = MessageBoxIcon.None; MessageBoxButtons mButtons = MessageBoxButtons.OK; MessageBoxDefaultButton mDefaultButton = MessageBoxDefaultButton.Button1; DKMessageBox.SetStyle(code, ref mIcon, ref mButtons, ref mDefaultButton); string message = string.Format(Messages.ResourceManager.GetString(code), args) + System.Environment.NewLine + detail; return MessageBox.Show(owner, message, owner.Text, mButtons, mIcon, mDefaultButton); } /// /// 设置消息样式 /// /// 消息编码 /// 消息图标 /// 消息按钮 /// 默认按钮 private static void SetStyle(string code, ref MessageBoxIcon mIcon, ref MessageBoxButtons mButtons, ref MessageBoxDefaultButton mDefaultButton) { string[] type = code.Split('_'); char icon = type[0][0]; switch (icon) { case 'I': mIcon = MessageBoxIcon.Information; break; case 'W': mIcon = MessageBoxIcon.Warning; break; case 'E': mIcon = MessageBoxIcon.Error; break; case 'Q': mIcon = MessageBoxIcon.Question; mButtons = MessageBoxButtons.YesNo; mDefaultButton = MessageBoxDefaultButton.Button2; break; default: break; } if (type[0].Length > 1) { string buttons = type[0].Substring(1); if ("YN" == buttons) { mButtons = MessageBoxButtons.YesNo; mDefaultButton = MessageBoxDefaultButton.Button2; } else if ("YNC" == buttons) { mButtons = MessageBoxButtons.YesNoCancel; mDefaultButton = MessageBoxDefaultButton.Button3; } else if ("OC" == buttons) { mButtons = MessageBoxButtons.OKCancel; mDefaultButton = MessageBoxDefaultButton.Button1; } else if ("RC" == buttons) { mButtons = MessageBoxButtons.RetryCancel; mDefaultButton = MessageBoxDefaultButton.Button1; } else if ("ARI" == buttons) { mButtons = MessageBoxButtons.AbortRetryIgnore; mDefaultButton = MessageBoxDefaultButton.Button2; } } if (type.Length > 1) { if ("1" == type[1]) { mDefaultButton = MessageBoxDefaultButton.Button1; } else if ("2" == type[1]) { mDefaultButton = MessageBoxDefaultButton.Button2; } else if ("3" == type[1]) { mDefaultButton = MessageBoxDefaultButton.Button3; } } } } }