testconnect.cs

来自「破解的飞信源代码」· CS 代码 · 共 150 行

CS
150
字号
namespace Imps.Client.Pc.Options
{
    using Imps.Client.Base;
    using Imps.Client.Pc.BizControls;
    using Imps.Client.Pc.Controls;
    using System;
    using System.ComponentModel;
    using System.Drawing;
    using System.Runtime.CompilerServices;
    using System.Windows.Forms;

    public class TestConnect : XIMDialog
    {
        private XButton btnClose;
        private TestConnectionCallBack callback;
        private IContainer components;
        private RichTextBox ctlMessage;
        private Panel pnlContainer;

        public TestConnect()
        {
            this.InitializeComponent();
        }

        private void AppendText(string text, Color color)
        {
            MyDelegate method = null;
            if (base.Created)
            {
                if (method == null)
                {
                    method = delegate {
                        this.ctlMessage.Select(this.ctlMessage.Text.Length, 0);
                        this.ctlMessage.SelectionColor = color;
                        this.ctlMessage.AppendText(text + "\r\n");
                    };
                }
                base.Invoke(method);
            }
        }

        private void AttachEventHandler()
        {
            this.callback = (TestConnectionCallBack) Delegate.Combine(this.callback, new TestConnectionCallBack(this.ShowMsg));
        }

        private void btnClose_Click(object sender, EventArgs e)
        {
            base.Close();
        }

        private void DetachEventHandler()
        {
            this.callback = (TestConnectionCallBack) Delegate.Remove(this.callback, new TestConnectionCallBack(this.ShowMsg));
        }

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

        private void InitializeComponent()
        {
            this.pnlContainer = new Panel();
            this.ctlMessage = new RichTextBox();
            this.btnClose = new XButton();
            this.pnlContainer.SuspendLayout();
            base.SuspendLayout();
            this.pnlContainer.BackColor = Color.Transparent;
            this.pnlContainer.Controls.Add(this.ctlMessage);
            this.pnlContainer.Location = new Point(0, 0);
            this.pnlContainer.Name = "pnlContainer";
            this.pnlContainer.Size = new Size(0x10b, 0xbf);
            this.pnlContainer.TabIndex = 0;
            this.ctlMessage.BorderStyle = BorderStyle.FixedSingle;
            this.ctlMessage.Dock = DockStyle.Fill;
            this.ctlMessage.Font = new Font("SimSun", 9f);
            this.ctlMessage.Location = new Point(0, 0);
            this.ctlMessage.Name = "ctlMessage";
            this.ctlMessage.ReadOnly = true;
            this.ctlMessage.Size = new Size(0x10b, 0xbf);
            this.ctlMessage.TabIndex = 0;
            this.ctlMessage.Text = "";
            this.btnClose.AutoArrangementX = true;
            this.btnClose.AutoSizeToImage = false;
            this.btnClose.BackColor = Color.Transparent;
            this.btnClose.BackgroundImageDisable = null;
            this.btnClose.BackgroundImageDown = null;
            this.btnClose.BackgroundImageHover = null;
            this.btnClose.ChangeSkin = true;
            this.btnClose.DialogResult = DialogResult.Cancel;
            this.btnClose.Location = new Point(0xc0, 0xc5);
            this.btnClose.Name = "btnClose";
            this.btnClose.Size = new Size(0x4b, 0x19);
            this.btnClose.TabIndex = 1;
            this.btnClose.Text = "关闭";
            this.btnClose.set_UseVisualStyleBackColor(false);
            this.btnClose.Click += new EventHandler(this.btnClose_Click);
            base.set_AutoScaleDimensions(new SizeF(6f, 13f));
            base.set_AutoScaleMode(1);
            base.BaseHeight = 0x13f;
            base.BaseWidth = 0x11e;
            base.ClientSize = new Size(280, 0x11f);
            base.Controls.Add(this.pnlContainer);
            base.Controls.Add(this.btnClose);
            base.DisplayLocation = new Point(0x12, 0x26);
            base.MinimizeBox = false;
            base.Name = "TestConnect";
            base.set_Padding(new Padding(6, 0x22, 0x13, 9));
            base.ShowInTaskbar = false;
            base.StartPosition = FormStartPosition.CenterParent;
            base.Text = "连接测试";
            base.AcceptButton = this.btnClose;
            base.add_FormClosing(new FormClosingEventHandler(this, (IntPtr) this.TestConnect_FormClosing));
            this.pnlContainer.ResumeLayout(false);
            base.ResumeLayout(false);
        }

        public void ShowMsg(TestConnectionStatus status, string msg)
        {
            if (base.IsHandleCreated && !base.IsDisposed)
            {
                switch (status)
                {
                    case TestConnectionStatus.Info:
                    case TestConnectionStatus.Successed:
                        this.AppendText(msg, Color.Blue);
                        return;

                    case TestConnectionStatus.Failed:
                        this.AppendText(msg, Color.Red);
                        return;
                }
            }
        }

        private void TestConnect_FormClosing(object sender, FormClosingEventArgs e)
        {
            this.DetachEventHandler();
        }

        private delegate void MyDelegate();
    }
}

⌨️ 快捷键说明

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