C#水印控件WaterTextBox输入框水印

243 阅读1分钟

 前言:

现在控件水印已经涉及的很广泛了,那如何让自己的控件上有水印的特效呢?今天以TextBox为例,教大家如何让输入框加入水印。

制作过程:

 

<一>添加用户控件并命名为WatermarkTextBox

 

 

<二>编辑该控件

 

右击/F7进入代码编辑器

将添加引用:using System.Runtime.InteropServices;//必要引用

将WaterTextBox : controller修改为WaterTextBox : TextBox

将下面核心代码复制粘贴


        public WaterTextBox()
        {
            InitializeComponent();
        }
        //关于水印控件的一些代码
        private const uint ECM_FIRST = 0x1500;
        private const uint EM_SETCUEBANNER = ECM_FIRST + 1;

        [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);
        }

 

<三>生成工具

 

将便捷好的控件拖拽到工具箱空白处,如下图。

 

<四>重新生成解决方案 (重要)

 

重新生成成功后就可以在工具箱中看到我们的控件

<五>设置属性

在Watermark属性中输入想要水印显示的字就可以了。

 

小结:

大功告成!之前感觉加水印的操作很难很高级,但是经过动手操作了几遍之后,发现也没有想象的那么难。 

参考文章:点击打开连接