Winform-TextBox实现 placeholder


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控件。
然后再工具箱——选择项,功能添加进来,就能“一劳永逸”了。

你可以建一个用户控键页面,编写你想的写的代码,之后在别的页面只须将其拖入就可以使用了。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM