需求:在实际开发中,由于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;
}
} }

  

最新文章

  1. 教你一招:Excel中使用MID函数获取身份证中的出生年月日
  2. 计算机系列:CUDA 深入研究
  3. 轻松自动化---selenium-webdriver(python) (九)
  4. 2.10 用最少次数寻找数组中的最大值和最小值[find min max of array]
  5. The "get" method should be used when the form is idempotent---正交的两个概念---
  6. Javascript高级篇-Function对象
  7. Java命令行运行参数说明大全--转
  8. C#程序注销、重启、关机和锁定电脑
  9. asp.net 1.1网站开发配置出现”Visual Studio .NET 无法创建或打开应用程序”解决方法
  10. crm操作知识库文章实体
  11. zzuli 1907: 小火山的宝藏收益 邻接表+DFS
  12. Phaser类详解
  13. ●Joyoi Easy
  14. 安装PyCharm开发工具
  15. 通信——基于Xmpp协议实现的聊天室
  16. 连接池commons-pool2
  17. C语言常用标准库函数
  18. vue 内引入jquery
  19. Javascript网页特效开发技巧
  20. ambari集成impala

热门文章

  1. Centos-目录或文件拷贝-cp
  2. pycharm 配置 github
  3. SQL实战——01. 查找最晚入职员工的所有信息
  4. (九) SpringBoot起飞之路-整合/集成Swagger 2 And 3
  5. API可视化管理平台YApi
  6. SpringSecurity原理
  7. linux 内核参数设置 - sysctl
  8. MVC与MVVM理解
  9. centos 6.4 配置本地yum源(iso镜像)
  10. day31 Pyhton 总结