欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

WinForm实现为TextBox设置水印文字功能

程序员文章站 2024-02-13 10:21:22
本文实例展示了winform实现为textbox设置水印文字功能,非常实用的技巧,分享给大家供大家参考。 关键代码如下: using system; usin...

本文实例展示了winform实现为textbox设置水印文字功能,非常实用的技巧,分享给大家供大家参考。

关键代码如下:

using system;
using system.runtime.interopservices;
using system.windows.forms;

namespace winformutilhelpv2
{
  /// <summary>
  /// 基于.net 2.0的textbox工具类
  /// </summary>
  public static class textboxtoolv2
  {
    private const int em_setcuebanner = 0x1501;
    [dllimport("user32.dll", charset = charset.auto)]

    private static extern int32 sendmessage
     (intptr hwnd, int msg, int wparam, [marshalas(unmanagedtype.lpwstr)] string lparam);

    /// <summary>
    /// 为textbox设置水印文字
    /// </summary>
    /// <param name="textbox">textbox</param>
    /// <param name="watermark">水印文字</param>
    public static void setwatermark(this textbox textbox, string watermark)
    {
      sendmessage(textbox.handle, em_setcuebanner, 0, watermark);
    }
    /// <summary>
    /// 清除水印文字
    /// </summary>
    /// <param name="textbox">textbox</param>
    public static void clearwatermark(this textbox textbox)
    {
      sendmessage(textbox.handle, em_setcuebanner, 0, string.empty);
    }
  }
}

测试代码如下:

using system;
using system.windows.forms;
using winformutilhelpv2;

namespace winformutilhelpv2test
{
  public partial class wintextboxtoolv2test : form
  {
    public wintextboxtoolv2test()
    {
      initializecomponent();
    }

    private void wintextboxtoolv2test_load(object sender, eventargs e)
    {
      textbox1.setwatermark("请输入用户名称....");
      textbox2.setwatermark("请输入用户密码....");
    }

    private void button1_click(object sender, eventargs e)
    {
      textbox1.clearwatermark();
      textbox2.clearwatermark();
    }
  }
}

测试效果如下图所示:

WinForm实现为TextBox设置水印文字功能

希望本文所述的为textbox设置水印文字功能示例对大家c#程序设计有所帮助!