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

发布于 2024-10-22 01:25:46 字数 984 浏览 4 评论 0原文

我想使用 C# 在 Windows 窗体的文本框中使用水印?

我在 stackoverflow 中找到了此链接。但我真的不知道如何在我的 Windows 应用程序中使用。

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 方法或建议我使用水印的任何其他(简单)方法。

I wanna use watermark in Text Boxes of my Windows Form using c#?

I have found this link in stackoverflow. But I really could not figure out how to use in my windows application.

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);
    }       

}

Please help how to use SendMessage Method Or Suggest me any other (easy) way to use watermark.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

内心荒芜 2024-10-29 01:25:46

您必须在项目中创建一个新类 TextBoxWatermarkExtensionMethod ,然后才能使用该方法 SetWatermark(string watermarkText)在您的文本框

You have to create a new class TextBoxWatermarkExtensionMethod into your project and after you can use the method SetWatermark(string watermarkText) on your textbox

万水千山粽是情ミ 2024-10-29 01:25:46

您只需在项目中添加包含此代码的 UserControl 即可。 WatermarkTextBox 应该出现在您的工具箱中的某个位置。将其放在表单上任何需要带水印的文本框而不是普通旧文本框的位置,设置 WatermarkText 属性,如果代码良好,您就可以开始使用了。

You just add a UserControl with this code in your project. WatermarkTextBox should appear in your toolbox somewhere. Put it on your form wherever you need the watermarked textbox instead of plain old textbox, set the WatermarkText property and you should be ready to go if the code is good.

落日海湾 2024-10-29 01:25:46

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

`myTextBox.SetWatermark("your water mark text here");`

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

SetWatermark is an extension method on TextBox, so anywhere on the namespace where the WatermarkTextBox class is added you can use the SetWatermark method passing the watermark string you want to apply on the TextBox like:

`myTextBox.SetWatermark("your water mark text here");`

SetWatermark will not be visible as public property of TextBox on the designer, but form your code it is accessible just like any of the bult-in methods of a TextBox object.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文