Beispiel #1
0
        public static DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton)
        {
            DialogResult result;

            DialogResult[] resultArray;
            MakeButtonCache();
            if (string.IsNullOrEmpty(text))
            {
                text = caption;
            }
            if (text == null)
            {
                text = string.Empty;
            }
            bool bMultiLine = (text.Length > 0x10) || (text.IndexOf('\n') >= 0);

            switch (buttons)
            {
            case MessageBoxButtons.OK:
                resultArray = new DialogResult[] { DialogResult.OK };
                break;

            case MessageBoxButtons.OKCancel:
                resultArray = new DialogResult[] { DialogResult.OK, DialogResult.Cancel };
                break;

            case MessageBoxButtons.AbortRetryIgnore:
                resultArray = new DialogResult[] { DialogResult.Abort, DialogResult.Retry, DialogResult.Ignore };
                break;

            case MessageBoxButtons.YesNoCancel:
                resultArray = new DialogResult[] { DialogResult.Yes, DialogResult.No, DialogResult.Cancel };
                break;

            case MessageBoxButtons.YesNo:
                resultArray = new DialogResult[] { DialogResult.Yes, DialogResult.No };
                break;

            case MessageBoxButtons.RetryCancel:
                resultArray = new DialogResult[] { DialogResult.Retry, DialogResult.Cancel };
                break;

            default:
                throw new ArgumentOutOfRangeException("buttons");
            }
            if (defaultButton == MessageBoxDefaultButton.Button1)
            {
                result = resultArray[0];
            }
            else if ((defaultButton == MessageBoxDefaultButton.Button2) && (resultArray.Length > 1))
            {
                result = resultArray[1];
            }
            else if ((defaultButton == MessageBoxDefaultButton.Button3) && (resultArray.Length > 2))
            {
                result = resultArray[2];
            }
            else
            {
                result = ~DialogResult.None;
            }
            for (int i = 0; i < resultArray.Length; i++)
            {
                DialogResult result2 = resultArray[i];
                string       str;
                DefaultButtonLabels.TryGetValue(result2, out str);
                m_yesNoCancel[i].Set(str, result2);
            }
            Resco.Controls.MessageBox.MenuItem[] items = new Resco.Controls.MessageBox.MenuItem[resultArray.Length];
            for (int j = 0; j < resultArray.Length; j++)
            {
                items[j] = m_yesNoCancel[j];
            }
            return(PopupMenuForm.Show <DialogResult>(icon, bMultiLine, text, result, items));
        }
Beispiel #2
0
        public static DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton)
        {
            DialogResult result;
            DialogResult[] resultArray;
            MakeButtonCache();
            if (string.IsNullOrEmpty(text))
            {
                text = caption;
            }
            if (text == null)
            {
                text = string.Empty;
            }
            bool bMultiLine = (text.Length > 0x10) || (text.IndexOf('\n') >= 0);
            switch (buttons)
            {
                case MessageBoxButtons.OK:
                    resultArray = new DialogResult[] { DialogResult.OK };
                    break;

                case MessageBoxButtons.OKCancel:
                    resultArray = new DialogResult[] { DialogResult.OK, DialogResult.Cancel };
                    break;

                case MessageBoxButtons.AbortRetryIgnore:
                    resultArray = new DialogResult[] { DialogResult.Abort, DialogResult.Retry, DialogResult.Ignore };
                    break;

                case MessageBoxButtons.YesNoCancel:
                    resultArray = new DialogResult[] { DialogResult.Yes, DialogResult.No, DialogResult.Cancel };
                    break;

                case MessageBoxButtons.YesNo:
                    resultArray = new DialogResult[] { DialogResult.Yes, DialogResult.No };
                    break;

                case MessageBoxButtons.RetryCancel:
                    resultArray = new DialogResult[] { DialogResult.Retry, DialogResult.Cancel };
                    break;

                default:
                    throw new ArgumentOutOfRangeException("buttons");
            }
            if (defaultButton == MessageBoxDefaultButton.Button1)
            {
                result = resultArray[0];
            }
            else if ((defaultButton == MessageBoxDefaultButton.Button2) && (resultArray.Length > 1))
            {
                result = resultArray[1];
            }
            else if ((defaultButton == MessageBoxDefaultButton.Button3) && (resultArray.Length > 2))
            {
                result = resultArray[2];
            }
            else
            {
                result = ~DialogResult.None;
            }
            for (int i = 0; i < resultArray.Length; i++)
            {
                DialogResult result2 = resultArray[i];
                string str;
                    DefaultButtonLabels.TryGetValue(result2,out str);
                m_yesNoCancel[i].Set(str, result2);
            }
            Resco.Controls.MessageBox.MenuItem[] items = new Resco.Controls.MessageBox.MenuItem[resultArray.Length];
            for (int j = 0; j < resultArray.Length; j++)
            {
                items[j] = m_yesNoCancel[j];
            }
            return PopupMenuForm.Show<DialogResult>(icon, bMultiLine, text, result, items);
        }