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

📄 xtextbox.cs

📁 破解的飞信源代码
💻 CS
字号:
namespace Imps.Client.Pc.Controls
{
    using Imps.Client.Pc;
    using Imps.Client.Pc.XControlStyle;
    using Imps.Client.Utils;
    using System;
    using System.Drawing;
    using System.Windows.Forms;

    public class XTextBox : TextBox
    {
        private string _emptyTip = string.Empty;
        private Color _emptyTipColor = Color.DarkGray;
        private static XTextBoxStyle _Style = new XTextBoxStyle();

        public XTextBox()
        {
            base.BorderStyle = BorderStyle.FixedSingle;
            this.set_DoubleBuffered(true);
            base.SetStyle(0x20000, true);
            if (!base.Enabled)
            {
                this.BackColor = Color.FromKnownColor(KnownColor.ControlLight);
            }
            else if (base.ReadOnly)
            {
                this.BackColor = Color.FromArgb(0xff, 240, 240, 240);
            }
            else
            {
                this.BackColor = Color.White;
            }
        }

        protected override void OnEnabledChanged(EventArgs e)
        {
            if (!base.Enabled)
            {
                this.BackColor = Color.FromKnownColor(KnownColor.ControlLight);
            }
            else if (base.ReadOnly)
            {
                this.BackColor = Color.FromArgb(0xff, 240, 240, 240);
            }
            else
            {
                this.BackColor = Color.White;
            }
            base.OnEnabledChanged(e);
        }

        protected override void OnGotFocus(EventArgs e)
        {
            if ((!base.ReadOnly && base.Enabled) && (base.ImeMode != ImeMode.Disable))
            {
                ControlHelper.TryForceControlImeHangul(this);
            }
            base.OnGotFocus(e);
            OperatingSystem oSVersion = Environment.OSVersion;
            if ((oSVersion.Version.Major < 5) || ((oSVersion.Version.Major == 5) && (oSVersion.Version.Minor == 0)))
            {
                base.Invalidate();
            }
        }

        protected override void OnLostFocus(EventArgs e)
        {
            base.OnLostFocus(e);
            OperatingSystem oSVersion = Environment.OSVersion;
            if ((oSVersion.Version.Major < 5) || ((oSVersion.Version.Major == 5) && (oSVersion.Version.Minor == 0)))
            {
                base.Invalidate();
            }
        }

        protected override void OnReadOnlyChanged(EventArgs e)
        {
            if (!base.Enabled)
            {
                this.BackColor = Color.FromKnownColor(KnownColor.ControlLight);
            }
            else if (base.ReadOnly)
            {
                this.BackColor = Color.FromArgb(0xff, 240, 240, 240);
            }
            else
            {
                this.BackColor = Color.White;
            }
            base.OnReadOnlyChanged(e);
        }

        protected override void WndProc(ref System.Windows.Forms.Message m)
        {
            base.WndProc(ref m);
            if (m.Msg == 15)
            {
                using (Graphics graphics = Graphics.FromHwnd(base.Handle))
                {
                    if (((this.Text.Length == 0) && !string.IsNullOrEmpty(this.EmptyTextTip)) && !this.Focused)
                    {
                        TextRenderer.DrawText((IDeviceContext) graphics, this.EmptyTextTip, this.Font, base.ClientRectangle, this.EmptyTextTipColor, 0x8004);
                    }
                    if (Style.UseTheme && (base.BorderStyle == BorderStyle.FixedSingle))
                    {
                        using (Pen pen = new Pen(Style.BorderColor))
                        {
                            if (!this.Multiline)
                            {
                                graphics.DrawRectangle(pen, 0, 0, base.Width - 1, base.Height - 1);
                            }
                            else if (base.ScrollBars == ScrollBars.Vertical)
                            {
                                int systemMetrics = InnerWin32.GetSystemMetrics(2);
                                if (systemMetrics > 0)
                                {
                                    Rectangle rect = new Rectangle(0, 0, (base.Width - systemMetrics) - 1, base.Height - 1);
                                    graphics.DrawRectangle(pen, rect);
                                }
                            }
                        }
                    }
                }
            }
        }

        public string EmptyTextTip
        {
            get
            {
                return this._emptyTip;
            }
            set
            {
                this._emptyTip = value;
            }
        }

        public Color EmptyTextTipColor
        {
            get
            {
                return this._emptyTipColor;
            }
            set
            {
                this._emptyTipColor = value;
            }
        }

        public static XTextBoxStyle Style
        {
            get
            {
                return _Style;
            }
            set
            {
                _Style = value;
            }
        }
    }
}

⌨️ 快捷键说明

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