首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在C#中使用水印System.Windows.Forms.TextBox?

如何在C#中使用水印System.Windows.Forms.TextBox?
EN

Stack Overflow用户
提问于 2011-03-15 01:42:26
回答 3查看 7.7K关注 0票数 0

我想使用c#在Windows Form的文本框中使用水印?

我在stackoverflow中找到了this link。但是我真的不知道如何在我的windows应用程序中使用。

代码语言:javascript
运行
复制
class WatermarkTextBox : TextBox
{
    private const uint ECM_FIRST = 0x1500;
    private const uint EM_SETCUEBANNER = ECM_FIRST + 1;

    [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
    static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, uint wParam, [MarshalAs(UnmanagedType.LPWStr)] string lParam);

    private string watermarkText;
    public string WatermarkText
    {
        get { return watermarkText; }
        set
        {
            watermarkText = value;
            SetWatermark(watermarkText);
        }
    }

    private void SetWatermark(string watermarkText)
    {
        SendMessage(this.Handle, EM_SETCUEBANNER, 0, watermarkText);
    }       

}

请帮助如何使用SendMessage方法或建议我任何其他(容易)的方式使用水印。

EN

Stack Overflow用户

发布于 2013-07-19 18:47:51

SetWatermark是TextBox上的一个扩展方法,因此在添加了WatermarkTextBox类的名称空间中的任何位置,都可以使用SetWatermark方法来传递要应用于TextBox的水印字符串,如下所示:

代码语言:javascript
运行
复制
`myTextBox.SetWatermark("your water mark text here");`

在设计器中,SetWatermark不会作为TextBox的公共属性可见,但从您的代码中可以访问它,就像TextBox对象的任何bult-in方法一样。

票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5302242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档