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

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

本文实例展示了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#程序设计有所帮助!

标签:WinForm,TextBox,水印
0
投稿

猜你喜欢

  • 自定义Android圆形进度条(附源码)

    2023-09-09 22:54:57
  • Android实现登录注册功能封装

    2023-03-20 08:46:46
  • Android学习教程之日历控件使用(7)

    2023-01-06 23:10:46
  • C# 通过反射初探ORM框架的实现原理(详解)

    2023-08-30 20:05:30
  • 深入理解Android Bitmap

    2023-07-29 08:52:14
  • Android framework ATMS启动流程

    2022-11-21 10:08:07
  • C# 显示、隐藏窗口对应的任务栏

    2023-06-13 03:57:32
  • 一篇文章带你搞定JAVA内存泄漏

    2022-04-28 21:07:08
  • IKAnalyzer结合Lucene实现中文分词(示例讲解)

    2022-10-13 03:24:44
  • 轻松学习C#的方法

    2023-06-21 13:22:32
  • Yml转properties文件工具类YmlUtils的详细过程(不用引任何插件和依赖)

    2021-08-18 03:55:00
  • C#生成漂亮验证码完整代码类

    2022-06-17 14:03:33
  • JAVA多线程并发下的单例模式应用

    2022-09-15 01:27:31
  • 基于StreamRead和StreamWriter的使用(实例讲解)

    2022-09-11 22:12:36
  • FeignClient如何通过配置变量调用配置文件url

    2023-05-07 08:19:25
  • IDEA设置maven修改settings.xml配置文件无法加载仓库的解决方案

    2023-08-23 22:39:35
  • Android仿最新微信相机功能

    2022-06-08 00:35:08
  • C#正则表达式转义字符介绍

    2022-11-03 01:10:09
  • DataGridView实现点击列头升序和降序排序

    2022-07-31 21:54:01
  • Android精灵动画用法实例

    2023-08-22 22:20:57
  • asp之家 软件编程 m.aspxhome.com