private dlgForm(Form child, DialogFormSize bodyPanelSize = DialogFormSize.Medium, bool ShouldDisposeOnOutsideClick = true, bool DisabledCloseOnOutsideClick = false) { this.ShouldDisposeOnOutsideClick = ShouldDisposeOnOutsideClick; this.DisabledCloseOnOutsideClick = DisabledCloseOnOutsideClick; ShouldDisposeOnChildClose = true; var sizeMultiplier = (int)bodyPanelSize; var _bodyPanelSize = new Size(sizeMultiplier * 100, (int)((double)sizeMultiplier / 2) * 100); InitializeComponent(); FormBorderStyle = FormBorderStyle.None; var mainFormSize = MainForm.Instance.Size; Size = new Size(mainFormSize.Width - 14, mainFormSize.Height - 14); pnlMain.MinimumSize = Size; pnlBody.Size = _bodyPanelSize; pnlBody.CenterToClient(this); txtLeftTitle.CenterToClient(pnlSide); SetStyle(ControlStyles.SupportsTransparentBackColor, true); BackColor = Color.Transparent; TransparencyKey = Color.Empty; pnlMain.BackColor = Color.FromArgb(170, 0, 0, 0); Child = child; Child.OpenAsChildOfControl(pnlBody); //Left focus from left side title (because it is RichTextBox) txtLeftTitle.Enter += (s, e) => { txtLeftTitle.Parent.Focus(); }; KeyPreview = true; }
public static void ShowDialog(Form child, DialogFormSize bodyPanelSize = DialogFormSize.Medium, bool NewInstance = false) { try { if (_instance == null || _instance.IsDisposed || (_instance != null && _instance.Visible) || NewInstance) { _instance = new dlgForm(child, bodyPanelSize); } _instance.ShowDialog(); } catch (Exception ex) { //ignore; } }