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#程序設計有所幫助!

