📄 xtextbox.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 + -