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#程序设计有所帮助!

(0)

相关推荐

  • C#中Winform窗体Form的关闭按钮变灰色的方法

    本文实例讲述了C#中Winform窗体Form的关闭按钮变灰色的方法,对C#程序设计有一定的借鉴价值,分享给大家供大家参考之用.具体方法如下: 主要功能代码如下: [ DllImport ( "USER32.DLL" ) ] public static extern int GetSystemMenu(int hwnd, int bRevert); [ DllImport ( "USER32.DLL" ) ] public static extern int Rem

  • Winform之TextBox输入日期格式验证yyyy-mm-dd

    复制代码 代码如下: private void button1_Click(object sender, EventArgs e)        {            string s = textBox1.Text.ToString();            bool b = ValidateDataTime(s);            string rs = "";            if (b)            {                rs = &qu

  • C#中WinForm程序退出方法技巧总结

    本文实例总结了C#中WinForm程序退出方法技巧.分享给大家供大家参考.具体分析如下: 在c#中退出WinForm程序包括有很多方法,如:this.Close(); Application.Exit();Application.ExitThread(); System.Environment.Exit(0); 等他们各自的方法不一样,下面我们就来详细介绍一下. 1.this.Close();   只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管线程(非主线程),也无法干净地退

  • C#中winform控制textbox输入只能为数字的方法

    本文实例讲述了C#中winform控制textbox输入只能为数字的方法.分享给大家供大家参考.具体实现方法如下: 添加keyPress事件,控制键盘输入只能是自然数: 复制代码 代码如下: /// <summary> /// 控制键盘输入只能是自然数 /// </summary> /// <param name="sender"></param> /// <param name="e"></para

  • C#之WinForm跨线程访问控件实例

    本文实例讲述了C#中WinForm跨线程访问控件的实现方法,分享给大家供大家参考. 具体实现方法如下: 1.跨线程访问控件委托和类的定义 复制代码 代码如下: using System; using System.Windows.Forms; namespace ahwildlife.Utils {     /// <summary>     /// 跨线程访问控件的委托     /// </summary>     public delegate void InvokeDeleg

  • WinForm下 TextBox只允许输入数字的小例子

    复制代码 代码如下: private void txtBarCode_KeyPress(object sender, KeyPressEventArgs e)        {            int ikc = (int)e.KeyChar;            if ((!System.Text.RegularExpressions.Regex.IsMatch(e.KeyChar.ToString(), "[0-9]")) && ((int)e.KeyCha

  • C#实现winform渐变效果的方法

    本文实例实现一个启动画面,采用了显示Aform,过一段时间,隐藏这个Aform,showdialog下一个Bform,closeAForm这个方法来做了,不知道大家有没有更好的办法. 设定程序从Aform启动: 复制代码 代码如下: static void Main()  {    Application.EnableVisualStyles();    Application.SetCompatibleTextRenderingDefault(false);    Application.Ru

  • C# WinForm应用程序降低系统内存占用方法总结

    背景: 微软的 .NET FRAMEWORK 现在可谓如火如荼了.但是,.NET 一直所为人诟病的就是"胃口太大",狂吃内存,虽然微软声称 GC 的功能和智能化都很高,但是内存的回收问题,一直存在困扰,尤其是 winform 程序,其主要原因是因为.NET程序在启动时,是需要由JIT动态编译并加载的,这个加载会把所有需要的资源都加载进来,很多资源是只有启动时才用的. 以XP 系统为例子,程序启动后,打开任务管理器,会看到占用的内存量比较大,你把程序最小化,会发现该程序占用的内存迅速减小

  • C# WinForm捕获未处理的异常实例解析

    本文以一个完整的实例形式讲述了C# WinForm捕获未处理的异常的方法.分享给大家供大家参考之用.具体代码如下: using System; using System.Collections.Generic; using System.Windows.Forms; using System.IO; namespace GobalException { static class Program { /// <summary> /// 应用程序的主入口点. /// </summary>

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

    本文实例展示了WinForm实现为TextBox设置水印文字功能,非常实用的技巧,分享给大家供大家参考. 关键代码如下: using System; using System.Runtime.InteropServices; using System.Windows.Forms; namespace WinFormUtilHelpV2 { /// <summary> /// 基于.NET 2.0的TextBox工具类 /// </summary> public static cla

  • DevExpress实现为TextEdit设置水印文字的方法

    本文实例展示了DevExpress实现为TextEdit设置水印文字的方法,是一个很实用的技巧.分享给大家供大家参考. 关键代码如下: public static void SetWatermark(this TextEdit textEdit, string watermark) { textEdit.Properties.NullValuePromptShowForEmptyValue = true; textEdit.Properties.NullValuePrompt = waterma

  • Android设置重复文字水印背景的方法

    本文实例为大家分享了Android设置重复文字水印背景的具体代码,供大家参考,具体内容如下 效果如图: 自定义Drawable : /**  * Created by Owen Chan  * On 2017-07-05.  */ public class WaterMarkBg extends Drawable {     private Paint paint = new Paint();     private String logo = "SoYoung";     publi

  • C#实现给Word每一页设置不同文字水印的方法详解

    目录 方法思路 dll引用 代码示例 Word中设置水印时,可使用预设的文字或自定义文字设置为水印效果,但通常添加水印效果时,会对所有页面都设置成统一效果,如果需要对每一页或者某个页面设置不同的水印效果,则可以参考本文中的方法.下面,将以C# 代码为例,对Word每一页设置不同的文字水印效果作详细介绍. 方法思路 在给Word每一页添加文字水印前,首先需要在Word文档每一页正文的最后一个字符后面插入“连续”分节符,然后在每一节的页眉段落里添加艺术字形状,并设置形状大小.对齐方式等.最后保存文档

  • asp图片加水印的功能代码

    复制代码 代码如下: '文字水印 Function WordWatermark(ImagePath) Dim Image Set Image= Server.CreateObject("Persits.Jpeg") ' 建立对象 Image.Open server.mappath(ImagePath) ' 图片所在位置 Image.Canvas.Font.Color = &H000000 ' 颜色,这里是设置成:黑 Image.Canvas.Font.Family = &quo

  • Java生成二维码可添加logo和文字功能

    废话不多说,直接给大家贴代码了,具体代码如下所示: package com.luo.wctweb.util; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.File; import java.util.Date; imp

  • iOS中设置清除缓存功能的实现方法

    绝大多数应用中都存在着清楚缓存的功能,形形色色,各有千秋,现为大家介绍一种最基础的清除缓存的方法.清除缓存基本上都是在设置界面的某一个Cell,于是我们可以把清除缓存封装在某一个自定义Cell中,如下图所示: 具体步骤 使用注意:过程中需要用到第三方库,请提前安装好:SDWebImage.SVProgressHUD. 1. 创建自定义Cell,命名为GYLClearCacheCell 重写initWithStyle:(UITableViewCellStyle)style reuseIdentif

  • Android自定义实现图片加文字功能

    Android自定义实现图片加文字功能 分四步来写: 1,组合控件的xml; 2,自定义组合控件的属性; 3,自定义继承组合布局的class类,实现带两参数的构造器; 4,在xml中展示组合控件. 具体实现过程: 一.组合控件的xml 我接触的有两种方式,一种是普通的Activity的xml:一种是父节点为merge的xml.我项目中用的是第一种,但个人感觉第二种好,因为第一种多了相对或者绝对布局层. 我写的 custom_pictext.xml <?xml version="1.0&qu

  • JavaScript实现的原生态兼容IE6可调可控滚动文字功能详解

    本文实例讲述了JavaScript实现的原生态兼容IE6可调可控滚动文字功能.分享给大家供大家参考,具体如下: 虽然HTML里面本身就有marquee标签,用来设置滚动文字(marquee标签在附录[HTML比较冷门标签与属性]里会有具体介绍)这个标签到了IE8就开始不支持,在IE6中可以设置的东西也很少,所以这东西还是用javascript来写为好.这个小组件也是比较常见的,但是网上的代码质量还是为了很多无关紧要的小特效而增加了许多无谓的代码.其实这东西,你只要弄得能自己向右向左滚,到了屏幕边

  • Android编程实现支持拖动改变位置的图片中叠加文字功能示例

    本文实例讲述了Android编程实现支持拖动改变位置的图片中叠加文字功能.分享给大家供大家参考,具体如下: 之所以做了这么一个Demo,是因为最近项目中有一个奇葩的需求:用户拍摄照片后,分享到微信的同时添加备注,想获取用户在微信的弹出框输入的内容,保存在自己的服务器上.而事实上,这个内容程序是无法获取的,因此采取了一个折衷方案,将文字直接写在图片上. 首先上Demo效果图: 功能: 1.用户自由输入内容,可手动换行,并且行满也会自动换行. 2.可拖动改变图片中文本位置(文字不会超出图片区域).

随机推荐