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

 更新时间:2014年08月19日 17:15:12   投稿:shichen2014  
这篇文章主要介绍了WinForm实现为TextBox设置水印文字功能,很实用的一个技巧,需要的朋友可以参考下

本文实例展示了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();
    }
  }
}

测试效果如下图所示:

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

相关文章

  • C#实现对文件进行加密解密的方法

    C#实现对文件进行加密解密的方法

    这篇文章主要介绍了C#实现对文件进行加密解密的方法,涉及C#加密与解密的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-04-04
  • 使用C#开源文件实时监控工具Tail&TailUI介绍

    使用C#开源文件实时监控工具Tail&TailUI介绍

    本篇文章小编为大家介绍,使用C#开源文件实时监控工具Tail&TailUI介绍。需要的朋友参考下
    2013-04-04
  • C#判断字符串不等于空的方法小结

    C#判断字符串不等于空的方法小结

    在C#中,要判断一个字符串是否不等于空(即它既不是null也不是空字符串""),方法有如下几种,文中通过代码示例讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-06-06
  • C#代码性能测试类(简单实用)

    C#代码性能测试类(简单实用)

    这篇文章主要介绍了C#代码性能测试类(简单实用),本文直接给出实现代码和使用示例,需要的朋友可以参考下
    2015-06-06
  • C#实现事件总线的方法示例

    C#实现事件总线的方法示例

    事件总线是一种用于在应用程序内部或跨应用程序组件之间进行事件通信的机制,本文主要介绍了C#实现事件总线的方法示例,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02
  • 基于C#实现屏幕桌面截图

    基于C#实现屏幕桌面截图

    这篇文章主要为大家详细介绍了如何利用C#实现屏幕桌面截图以及左上角区域截图功能,文中的示例代码讲解详细,对我们学习C#有一定的帮助,感兴趣的小伙伴可以了解一下
    2022-12-12
  • C#资源释放方法实例分析

    C#资源释放方法实例分析

    这篇文章主要介绍了C#资源释放方法,结合实例详细分析了C#资源释放的具体方法与相关技巧,需要的朋友可以参考下
    2016-02-02
  • c#高效率导出多维表头excel的实例代码

    c#高效率导出多维表头excel的实例代码

    这篇文章介绍了c#高效率导出多维表头excel的实例代码,有需要的朋友可以参考一下
    2013-11-11
  • c#桥接模式(bridge结构模式)用法实例

    c#桥接模式(bridge结构模式)用法实例

    这篇文章主要介绍了c#桥接模式(bridge结构模式)用法,较为详细的分析了桥接模式的原理与用法实例,具有一定的参考借鉴价值,需要的朋友可以参考下
    2014-12-12
  • C#实现窗体中动态按钮的设计方法

    C#实现窗体中动态按钮的设计方法

    在窗体界面中,通常以按钮来代替菜单栏的功能,这种形式虽然给用户一种直观、界面风格各异的感觉,但通常按钮都是以静止的形式显示,所以本文给大家介绍了C#实现窗体中动态按钮的设计方法,感兴趣的朋友可以参考下
    2024-04-04

最新评论