public class TextBoxEx : TextBox { public String PlaceHolderStr { get; set; } protected override void WndProc(ref Message m) { base.WndProc(ref m); if (m.Msg == 0xF || m.Msg == 0x133) { WmPaint(ref m); } } private void WmPaint(ref Message m) { Graphics g = Graphics.FromHwnd(base.Handle); if (!String.IsNullOrEmpty(this.PlaceHolderStr) && string.IsNullOrEmpty(this.Text)) g.DrawString(this.PlaceHolderStr, this.Font, new SolidBrush(Color.LightGray), 0, 0); } }
然后在Designer.cs即设计器里面实现该重写的控件
this.ADTextBox = new frmInfoBarCodeFeeDetailed.TextBoxEx();
然后控件属性就会出现所重写的属性了,设置即可
完毕!!!
1. 首先你把一个label控件拖到窗体上。
2. 创建一个准备继承的类,比如叫MyLabel,派生于Label类
class MyLabel : System.Windows.Forms.Label
{
// 你自己重写的内容
}
3. 打开Form1.Designer.cs文件,你会看到有这么一行。
private System.Windows.Forms.Label label1;
修改为
private MyLabel label1;
再找到this.label1 = new System.Windows.Forms.Label();
修改为this.label1 = new MyLabel();
然后编译,运行,此时窗体上的这个控件就是MyLabel类创造出来的了。
________________________________________________
或者这样也行,创建——Windows控件库,自己创建一个重写后的labal控件。
然后再工具箱——选择项,功能添加进来,就能“一劳永逸”了。
你可以建一个用户控键页面,编写你想的写的代码,之后在别的页面只须将其拖入就可以使用了。