internal static bool CheckParentingCycle(Control bottom, Control toFind) { Form form1 = (Form)null; Control control1 = (Control)null; for (Control control2 = bottom; control2 != null; control2 = control2.Parent) { control1 = control2; if (control2 == toFind) { return(true); } } if (control1 != null && control1 is Form) { for (Form form2 = (Form)control1; form2 != null; form2 = form2.Owner) { form1 = form2; if (form2 == toFind) { return(true); } } } if (form1 != null && form1.Parent != null) { return(RadMessageBox.CheckParentingCycle(form1.Parent, toFind)); } return(false); }
private static DialogResult ShowCore( IWin32Window owner, string text, string caption, MessageBoxButtons buttons, Bitmap icon, MessageBoxDefaultButton defaultButton, RightToLeft rightToLeft, string detailsText) { if (RadMessageBox.Instance.Visible) { RadMessageBox.Instance.Dispose(); } if (RadMessageBox.Instance == null || RadMessageBox.Instance.IsDisposed) { RadMessageBox.radMessageBoxForm = new RadMessageBoxForm(); } RadMessageBox.Instance.DialogResult = DialogResult.Cancel; RadMessageBox.Instance.RightToLeft = rightToLeft; RadMessageBox.Instance.DetailsText = detailsText; RadMessageBox.Instance.MessageText = text; RadMessageBox.Instance.StartPosition = FormStartPosition.CenterParent; RadMessageBox.Instance.Owner = (Form)null; Control bottom = (Control)null; if (owner != null) { bottom = Control.FromHandle(owner.Handle); if (bottom != null) { RadMessageBox.Instance.Owner = bottom.FindForm(); } } else { RadMessageBox.Instance.StartPosition = FormStartPosition.CenterScreen; } if (RadMessageBox.Instance.Owner != null) { RadMessageBox.Instance.TopMost = RadMessageBox.Instance.Owner.TopMost; } if (!string.IsNullOrEmpty(caption)) { RadMessageBox.Instance.Text = caption; } else { RadMessageBox.Instance.Text = string.Empty; } RadMessageBox.Instance.MessageIcon = icon; RadMessageBox.Instance.ButtonsConfiguration = buttons; RadMessageBox.Instance.DefaultButton = defaultButton; bool flag = RadMessageBox.CheckParentingCycle(bottom, (Control)RadMessageBox.Instance); if (RadMessageBox.Instance.Owner != null) { if (!flag) { try { int num = (int)RadMessageBox.Instance.ShowDialog((IWin32Window)RadMessageBox.Instance.Owner); goto label_18; } catch (ArgumentException ex) { int num = (int)RadMessageBox.Instance.ShowDialog(); goto label_18; } } } int num1 = (int)RadMessageBox.Instance.ShowDialog(); label_18: DialogResult dialogResult = DialogResult.OK; if (buttons != MessageBoxButtons.OK) { dialogResult = RadMessageBox.Instance.DialogResult; } return(dialogResult); }