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

📄 impsmessagebox.cs

📁 破解的飞信源代码
💻 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.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(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);
            this.AdjustControlPosition();
            this.initComponentRegion();
        }

        private void AdjustButtonsLocation()
        {
            Button[] buttonArray = new Button[] { this.btnA, this.btnB, this.btnC };
            Size size = this.btnA.Size;
            int num = 10;
            int num2 = 0;
            int num3 = 0;
            foreach (Button button in buttonArray)
            {
                if (button.Text.Length > 0)
                {
                    num3 += size.Width;
                    if (num2 > 0)
                    {
                        num3 += num;
                    }
                    num2++;
                }
            }
            int num4 = ((this.pnlContainer.Width - num3) / 2) + this.pnlContainer.Left;
            foreach (Button button2 in buttonArray)
            {
                if (button2.Text.Length > 0)
                {
                    button2.Left = num4;
                    num4 += size.Width + num;
                }
            }
        }

        private void AdjustControlPosition()
        {
            int x;
            Size size = new Size(250, 0x7e);
            this.pnlContainer.set_MinimumSize(size);
            Size size2 = this.lbMessage.Size;
            if (size.Height < (size2.Height + 40))
            {
                size.Height = size2.Height + 40;
            }
            bool flag = this.pbIcon.Image != null;
            int num = 0x18;
            if (flag)
            {
                this.pbIcon.Location = new System.Drawing.Point(num, (size.Height - this.pbIcon.Height) / 2);
                x = this.pbIcon.Right + 20;
                size.Width = (x + size2.Width) + 20;
            }
            else
            {
                if (size.Width < ((size2.Width + num) + num))
                {
                    size.Width = (size2.Width + num) + num;
                }
                x = (size.Width - size2.Width) / 2;
            }
            int y = (size.Height - size2.Height) / 2;
            this.lbMessage.Location = new System.Drawing.Point(x, y);
            this.pnlContainer.Size = size;
        }

        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;
            }
            base.KeyDown += new KeyEventHandler(this.btn_KeyDown);
            this.AdjustButtonsLocation();
            base.SizeChanged += new EventHandler(this.ImpsMessageBox_SizeChanged);
        }

        private void ImpsMessageBox_SizeChanged(object sender, EventArgs e)
        {
            this.AdjustButtonsLocation();
        }

        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;

⌨️ 快捷键说明

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