如何使用C#使用水印System.Windows.Forms.TextBox?
我想使用 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您必须在项目中创建一个新类 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您只需在项目中添加包含此代码的 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 theWatermarkText
property and you should be ready to go if the code is good.SetWatermark 是 TextBox 上的扩展方法,因此在添加 WatermarkTextBox 类的命名空间中的任何位置,您都可以使用 SetWatermark 方法传递要应用于 TextBox 的水印字符串,如下所示:
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:
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.