C# 实现textBox的水印提示效果

1.在项目上右击,添加,用户控件。以WatermarkTextBox.cs命名.

2.添加命名空间using System.Runtime.InteropServices;  因为DllImport是System.Runtime.InteropService命名控件下的一个属性类,

在 WatermarkTextBox.cs中添加代码如下

 public partial class WatermarkTextBox : TextBox      //将此控件的继承类型从UserControl改成TextBox。即继承TextBox控件的所有功能。

    {

        public WatermarkTextBox()

        {

            InitializeComponent();

        }

 

        private const uint ECM_FIRST = 0x1500;

        private const uint EM_SETCUEBANNER = ECM_FIRST + 1;

       

        //通过SendMessage发送EM_SETCUEBANNER消息,即可达到添加水印文字的效果。

        [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]

        static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, uint wParam, [MarshalAs(UnmanagedType.LPWStr)]string lParam);

 

        private string watermarkText;

        public string WatermarkText

        {

            get { return watermarkText; }

            set

            {

                watermarkText = value;

                SetWatermark(watermarkText);

            }

        }

 

        private void SetWatermark(string watermarkText)

        {

            SendMessage(this.Handle,EM_SETCUEBANNER,0,watermarkText);

        }

    }

3.运行,将报错的那一行代码删除。

4.右击项目,重新生成。在工具栏中,项目名下,可以看到自定义控件WatermarkTextBox,将其如正常控件一样拖到form中即可使用;

设置其属性WatermarkText的值,即显示水印提示效果。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值