自定义控件-只有横线的文本输入框(TxtLine)
2024-10-08 03:38:54
需求:在实际开发中,由于TextBox控件的背景色样式不美观,且TextBox不能直接设置背景颜色,因此需要使用自定义控件以实现如下效果
实现代码
public partial class TxtLine : TextBox
{
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
static extern IntPtr LoadLibrary(string lpFileName); public TxtLine()
{
InitializeComponent();
this.Multiline = true;
this.Width = 100;
this.Height = 16;
this.BorderStyle = BorderStyle.None;
this.TextAlign = HorizontalAlignment.Center; } public string DataField
{ get; set; }
public string Description
{ get; set; } private Color _linecolor = Color.Black;
public Color LineColor
{
get
{
return this._linecolor;
}
set
{
this._linecolor = value;
this.Invalidate();
}
} private const int WM_PAINT = 0xF;
protected override void WndProc(ref Message m)
{
base.WndProc(ref m);
if (m.Msg == WM_PAINT)
{
DrawLine();
}
}
private void DrawLine()
{
Graphics g = this.CreateGraphics();
using (Pen p = new Pen(this._linecolor))
{
g.DrawLine(p, 0, this.Height - 1, this.Width, this.Height - 1);
}
}
protected override void OnPaint(PaintEventArgs pe)
{
base.OnPaint(pe);
}
protected override CreateParams CreateParams
{
get
{
CreateParams prams = base.CreateParams;
if (LoadLibrary("msftedit.dll") != IntPtr.Zero)
{
prams.ExStyle |= 0x020;
prams.ClassName = "RICHEDIT50W";
}
return prams;
}
} }
最新文章
- 教你一招:Excel中使用MID函数获取身份证中的出生年月日
- 计算机系列:CUDA 深入研究
- 轻松自动化---selenium-webdriver(python) (九)
- 2.10 用最少次数寻找数组中的最大值和最小值[find min max of array]
- The ";get"; method should be used when the form is idempotent---正交的两个概念---
- Javascript高级篇-Function对象
- Java命令行运行参数说明大全--转
- C#程序注销、重启、关机和锁定电脑
- asp.net 1.1网站开发配置出现”Visual Studio .NET 无法创建或打开应用程序”解决方法
- crm操作知识库文章实体
- zzuli 1907: 小火山的宝藏收益 邻接表+DFS
- Phaser类详解
- ●Joyoi Easy
- 安装PyCharm开发工具
- 通信——基于Xmpp协议实现的聊天室
- 连接池commons-pool2
- C语言常用标准库函数
- vue 内引入jquery
- Javascript网页特效开发技巧
- ambari集成impala