Winform界面设计之-TextBox水印提示

先给出效果图:

                          

------------------------------------------------------------------------------------------------------------------------

以下为具体代码:

1、新建一个Component Class命名为WaterTextBox

2、在WaterTextBox中写如下代码

using System;
using System.Drawing;
using System.Windows.Forms;

namespace WaterMarkTextBoxDemo
{
    public partial class WaterMarkTextBox : TextBox
    {
        private readonly Label lblwaterText = new Label();

        public WaterMarkTextBox()
        {
            InitializeComponent();
            lblwaterText.BorderStyle = BorderStyle.None;
            lblwaterText.Enabled = false;
            lblwaterText.BackColor = Color.White;
            lblwaterText.AutoSize = false;
            lblwaterText.Top = 1;
            lblwaterText.Left = 2;
            lblwaterText.FlatStyle = FlatStyle.System;
            Controls.Add(lblwaterText);
        }

        public string WaterText
        {
            get { return lblwaterText.Text; }
            set { lblwaterText.Text = value; }
        }

        public override string Text
        {
            set
            {
                lblwaterText.Visible = value == string.Empty;
                base.Text = value;
            }
            get
            {
                return base.Text;
            }
        }

        protected override void OnSizeChanged(EventArgs e)
        {
            if (Multiline && (ScrollBars == ScrollBars.Vertical || ScrollBars == ScrollBars.Both))
                lblwaterText.Width = Width - 20;
            else
                lblwaterText.Width = Width;
            lblwaterText.Height = Height - 2;
            base.OnSizeChanged(e);
        }

        protected override void OnTextChanged(EventArgs e)
        {
            lblwaterText.Visible = base.Text == string.Empty;
            base.OnTextChanged(e);
        }

        protected override void OnMouseDown(MouseEventArgs e)
        {
            lblwaterText.Visible = false;
            base.OnMouseDown(e);
        }

        protected override void OnGotFocus(EventArgs e)
        {
            lblwaterText.Visible = base.Text == string.Empty;
            base.OnGotFocus(e);
        }


        protected override void OnLostFocus(EventArgs e)
        {
            lblwaterText.Visible = base.Text == string.Empty;
            base.OnLostFocus(e);
        }
    }
}
3、可以将其编译成dll文件,或者是直接写在项目下,具体代码请到 点击打开链接下载







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值