前言:
现在控件水印已经涉及的很广泛了,那如何让自己的控件上有水印的特效呢?今天以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属性中输入想要水印显示的字就可以了。

小结:
大功告成!之前感觉加水印的操作很难很高级,但是经过动手操作了几遍之后,发现也没有想象的那么难。
参考文章:点击打开连接