private static void ModalState(PoisonMessageBoxControl control) { /* * while (control.Visible) * { * * } */ }
public static DialogResult Show(IWin32Window owner, string message, string title, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultbutton, int height) { DialogResult _result = DialogResult.None; if (owner != null) { Form _owner = (owner as Form == null) ? ((UserControl)owner).ParentForm : (Form)owner; //int _minWidth = 500; //int _minHeight = 350; //if (_owner.Size.Width < _minWidth || // _owner.Size.Height < _minHeight) //{ // if (_owner.Size.Width < _minWidth && _owner.Size.Height < _minHeight) { // _owner.Size = new Size(_minWidth, _minHeight); // } // else // { // if (_owner.Size.Width < _minWidth) _owner.Size = new Size(_minWidth, _owner.Size.Height); // else _owner.Size = new Size(_owner.Size.Width, _minHeight); // } // int x = Convert.ToInt32(Math.Ceiling((decimal)(Screen.PrimaryScreen.WorkingArea.Size.Width / 2) - (_owner.Size.Width / 2))); // int y = Convert.ToInt32(Math.Ceiling((decimal)(Screen.PrimaryScreen.WorkingArea.Size.Height / 2) - (_owner.Size.Height / 2))); // _owner.Location = new Point(x, y); //} switch (icon) { case MessageBoxIcon.Error: SystemSounds.Hand.Play(); break; case MessageBoxIcon.Exclamation: SystemSounds.Exclamation.Play(); break; case MessageBoxIcon.Question: SystemSounds.Beep.Play(); break; default: SystemSounds.Asterisk.Play(); break; } PoisonMessageBoxControl _control = new PoisonMessageBoxControl { BackColor = _owner.BackColor }; _control.Properties.Buttons = buttons; _control.Properties.DefaultButton = defaultbutton; _control.Properties.Icon = icon; _control.Properties.Message = message; _control.Properties.Title = title; _control.Padding = new Padding(0, 0, 0, 0); _control.ControlBox = false; _control.ShowInTaskbar = false; _control.TopMost = true; //_owner.Controls.Add(_control); //if (_owner is IPoisonForm) //{ // //if (((PoisonForm)_owner).DisplayHeader) // //{ // // _offset += 30; // //} // _control.Theme = ((PoisonForm)_owner).Theme; // _control.Style = ((PoisonForm)_owner).Style; //} _control.Size = new Size(_owner.Size.Width, height); _control.Location = new Point(_owner.Location.X, _owner.Location.Y + (_owner.Height - _control.Height) / 2); _control.ArrangeApperance(); int _overlaySizes = Convert.ToInt32(Math.Floor(_control.Size.Height * 0.28)); //_control.OverlayPanelTop.Size = new Size(_control.Size.Width, _overlaySizes - 30); //_control.OverlayPanelBottom.Size = new Size(_control.Size.Width, _overlaySizes); _control.ShowDialog(); _control.BringToFront(); _control.SetDefaultButton(); Action <PoisonMessageBoxControl> _delegate = new Action <PoisonMessageBoxControl>(ModalState); IAsyncResult _asyncresult = _delegate.BeginInvoke(_control, null, _delegate); bool _cancelled = false; try { while (!_asyncresult.IsCompleted) { Thread.Sleep(1); Application.DoEvents(); } } catch { _cancelled = true; if (!_asyncresult.IsCompleted) { try { _asyncresult = null; } catch { } } _delegate = null; } if (!_cancelled) { _result = _control.Result; //_owner.Controls.Remove(_control); _control.Dispose(); _control = null; } } return(_result); }
private static void ModalState(PoisonMessageBoxControl control) { while (control.Visible) { } }
public PoisonMessageBoxProperties(PoisonMessageBoxControl owner) { _owner = owner; }