using System; using System.Windows.Forms; using System.Threading; using CoreUnit.Common; namespace CoreUnit.Control.Dialog { public partial class MessageDlg : FormBase { public static MessageDlg messageDlg = new MessageDlg(); public enum DialogMode { MODAL, MODELESS }; public string Msg { get { return lbMessage.Text; } set { lbMessage.Text = value; } } public void Instance() { Name = "Message"; } public MessageDlg() { InitializeComponent(); Instance(); } public DialogResult RunDlg(string msg, bool isMessageMode, DialogMode dialogMode = DialogMode.MODELESS, string caption = "") { if (caption != string.Empty) this.Text = caption; else this.Text = "Message"; Msg = msg; btnOK.Enabled = !isMessageMode; btnCancel.Enabled = !isMessageMode; btnClose.Enabled = isMessageMode; btnOK.Visible = !isMessageMode; btnCancel.Visible = !isMessageMode; btnClose.Visible = isMessageMode; if(Visible == false) { Show(); } if (dialogMode == DialogMode.MODAL) { WaitForResponse(); } return this.DialogResult; } public void WaitForResponse() { while (true) { Application.DoEvents(); Thread.Sleep(100); if (Visible == false) { return; } } } private void btnCancel_Click(object sender, EventArgs e) { this.DialogResult = DialogResult.No; Hide(); } private void btnOK_Click(object sender, EventArgs e) { this.DialogResult = DialogResult.Yes; Hide(); } private void btnClose_Click(object sender, EventArgs e) { Hide(); } } }