软件编程
位置:首页>> 软件编程>> C#编程>> WinForm实现为TextBox设置水印文字功能

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

作者:shichen2014  发布时间:2023-06-09 21:15:38 

标签: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();
   }
 }
}

测试效果如下图所示:

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

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

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com