⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 impsmessagebox.cs

📁 飞信的收发使用csharp进行开发
💻 CS
📖 第 1 页 / 共 2 页
字号:
namespace Imps.Client.Pc
{
    using Imps.Client.Pc.BizControls;
    using Imps.Client.Pc.Controls;
    using Imps.Client.Resource;
    using System;
    using System.ComponentModel;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;

    public class ImpsMessageBox : XIMDialog
    {
        private MessageBoxButtons _btns;
        private MessageBoxDefaultButton _defaultBtn;
        private XButton btnA;
        private XButton btnB;
        private XButton btnC;
        private IContainer components;
        private XLabel lbMessage;
        private PictureBox pbIcon;
        private Panel pnlContainer;

        public ImpsMessageBox()
        {
        }

        public ImpsMessageBox(IWin32Window wnd, string details, MessageBoxButtons btns, MessageBoxIcon icon) : this(wnd, details, btns, icon, MessageBoxDefaultButton.Button1)
        {
        }

        public ImpsMessageBox(IWin32Window wnd, string details, MessageBoxButtons btns, MessageBoxIcon icon, MessageBoxDefaultButton defaultBtn)
        {
            this._btns = btns;
            this._defaultBtn = defaultBtn;
            this.InitializeComponent();
            this.InitButtons();
            this.InitIcon(icon);
            this.LoadResource(details);
        }

        private void AdjustBtnPosition()
        {
            Size size = this.btnA.Size;
            int num = this.btnB.Left - (this.btnA.Left + this.btnA.Width);
            int num2 = 0;
            if (this.btnA.Text.Length > 0)
            {
                num2++;
            }
            if (this.btnB.Text.Length > 0)
            {
                num2++;
            }
            if (this.btnC.Text.Length > 0)
            {
                num2++;
            }
            int num3 = 0;
            for (int i = 0; i < num2; i++)
            {
                num3 += size.Width;
                num3 += num;
            }
            num3 -= num;
            int x = (this.pnlContainer.Width / 2) - (num3 / 2);
            int num6 = 2;
            this.btnA.Location = new Point(x, (this.pnlContainer.Height - size.Height) + num6);
            this.btnB.Location = new Point((x + size.Width) + num, (this.pnlContainer.Height - size.Height) + num6);
            this.btnC.Location = new Point((x + (size.Width * 2)) + num, (this.pnlContainer.Height - size.Height) + num6);
        }

        private void AdjustTextPosition()
        {
            Point location = this.lbMessage.Location;
            Size size = this.lbMessage.Size;
            if ((location.X + size.Width) <= this.pnlContainer.Width)
            {
                if (this.pbIcon.Visible)
                {
                    if (((location.X + (size.Width / 2)) + 0x30) != (this.pnlContainer.Width / 2))
                    {
                        this.lbMessage.Left += (this.pnlContainer.Width / 2) - ((location.X + (size.Width / 2)) + 0x30);
                    }
                }
                else if ((location.X + (size.Width / 2)) != (this.pnlContainer.Width / 2))
                {
                    this.lbMessage.Left += (this.pnlContainer.Width / 2) - (location.X + (size.Width / 2));
                }
            }
        }

        private void btn_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Control && (e.KeyCode == Keys.C))
            {
                Clipboard.SetText(this.lbMessage.Text);
            }
        }

        private void btnA_Click(object sender, EventArgs e)
        {
            switch (this._btns)
            {
                case MessageBoxButtons.OK:
                case MessageBoxButtons.OKCancel:
                    base.DialogResult = DialogResult.OK;
                    break;

                case MessageBoxButtons.AbortRetryIgnore:
                    base.DialogResult = DialogResult.Abort;
                    break;

                case MessageBoxButtons.YesNoCancel:
                case MessageBoxButtons.YesNo:
                    base.DialogResult = DialogResult.Yes;
                    break;

                case MessageBoxButtons.RetryCancel:
                    base.DialogResult = DialogResult.Retry;
                    break;
            }
            base.Close();
        }

        private void btnB_Click(object sender, EventArgs e)
        {
            switch (this._btns)
            {
                case MessageBoxButtons.OKCancel:
                case MessageBoxButtons.RetryCancel:
                    base.DialogResult = DialogResult.Cancel;
                    break;

                case MessageBoxButtons.AbortRetryIgnore:
                    base.DialogResult = DialogResult.Retry;
                    break;

                case MessageBoxButtons.YesNoCancel:
                case MessageBoxButtons.YesNo:
                    base.DialogResult = DialogResult.No;
                    break;
            }
            base.Close();
        }

        private void btnC_Click(object sender, EventArgs e)
        {
            switch (this._btns)
            {
                case MessageBoxButtons.AbortRetryIgnore:
                    base.DialogResult = DialogResult.Ignore;
                    break;

                case MessageBoxButtons.YesNoCancel:
                    base.DialogResult = DialogResult.Cancel;
                    break;
            }
            base.Close();
        }

        protected override void Dispose(bool disposing)
        {
            if (disposing && (this.components != null))
            {
                this.components.Dispose();
            }
            base.Dispose(disposing);
        }

        private void ImpsMessageBox_Shown(object sender, EventArgs e)
        {
            switch (this._defaultBtn)
            {
                case MessageBoxDefaultButton.Button1:
                    this.btnA.Focus();
                    break;

                case MessageBoxDefaultButton.Button2:
                    this.btnB.Focus();
                    break;

                case MessageBoxDefaultButton.Button3:
                    this.btnC.Focus();
                    break;
            }
            this.btnA.KeyDown += new KeyEventHandler(this.btn_KeyDown);
            this.btnB.KeyDown += new KeyEventHandler(this.btn_KeyDown);
            this.btnC.KeyDown += new KeyEventHandler(this.btn_KeyDown);
        }

        private void InitButtons()
        {
            switch (this._btns)
            {
                case MessageBoxButtons.OK:
                    this.SetBtnText(StringTable.DialogButton.btnOk, string.Empty, string.Empty);
                    base.AcceptButton = this.btnA;
                    base.CancelButton = this.btnA;
                    break;

                case MessageBoxButtons.OKCancel:
                    this.SetBtnText(StringTable.DialogButton.btnOk, StringTable.DialogButton.btnCancel, string.Empty);
                    base.AcceptButton = this.btnA;
                    base.CancelButton = this.btnB;
                    break;

                case MessageBoxButtons.AbortRetryIgnore:
                    this.SetBtnText(StringTable.DialogButton.btnCancel, StringTable.DialogButton.btnRetry, StringTable.DialogButton.btnCancel);
                    base.AcceptButton = this.btnA;
                    base.CancelButton = this.btnC;
                    break;

                case MessageBoxButtons.YesNoCancel:
                    this.SetBtnText(StringTable.DialogButton.btnYes, StringTable.DialogButton.btnNo, StringTable.DialogButton.btnCancel);
                    base.AcceptButton = this.btnA;
                    base.CancelButton = this.btnC;
                    break;

                case MessageBoxButtons.YesNo:
                    this.SetBtnText(StringTable.DialogButton.btnYes, StringTable.DialogButton.btnNo, string.Empty);
                    base.AcceptButton = this.btnA;
                    base.CancelButton = this.btnB;
                    break;

                case MessageBoxButtons.RetryCancel:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -