Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# System.Windows.Forms.TextBox中的水印_C#_.net_Windows_.net 2.0_Watermark - Fatal编程技术网

C# System.Windows.Forms.TextBox中的水印

C# System.Windows.Forms.TextBox中的水印,c#,.net,windows,.net-2.0,watermark,C#,.net,Windows,.net 2.0,Watermark,在.NET2.0和C#中为System.Windows.Forms.TextBox实现水印功能的最佳方法是什么 编辑: 使用CodeProject中现成的组件非常简单。它还带有代码项目开放许可证(CPOL)。它不像人们想象的那么简单。您需要使用System.Drawing命名空间并重写OnPaint事件 这里有一些已经做过的人的链接 &最近,我需要一个水印文本框,第一个出现在我脑海中的是文本框的OnLeave和OnEnter事件,但首先我用谷歌搜索它,我得到两个链接,第一个是CodeProje

在.NET2.0和C#中为
System.Windows.Forms.TextBox
实现水印功能的最佳方法是什么


编辑:


使用CodeProject中现成的组件非常简单。它还带有代码项目开放许可证(CPOL)。

它不像人们想象的那么简单。您需要使用System.Drawing命名空间并重写OnPaint事件

这里有一些已经做过的人的链接


&

最近,我需要一个水印文本框,第一个出现在我脑海中的是文本框的OnLeave和OnEnter事件,但首先我用谷歌搜索它,我得到两个链接,第一个是CodeProject中使用System.Drawing命名空间的链接,另一个在这里使用SendMessage()

我相信SendMessage一个更容易,它也没有闪烁。虽然我用过


我希望它能对你有所帮助。

@BtBh:谢谢。第一个链接是我需要的+我同意这并不像你想的那么直截了当。我建议你这样回答@佩曼:谢谢+1和绿色复选标记。SendMessage更简单关于Vidmar用法的附加说明:设置水印=this.txtBoxA.SetWatermark(“BOX”);**所需参考=使用System.ComponentModel;使用系统图;使用System.Windows.Forms;使用System.Runtime.InteropServices;如何在windows应用程序中使用它?尝试了这种方法(EM_SETCUEBANNER)和CodeProject方法。EM_SETCUEBANNER的唯一缺点是无法设置水印颜色,否则会晃动。codeproject方法的缺点是前面提到的flicker-peymank,水印文本不会消失,直到您开始键入(而不是聚焦)。我创建了一个小型GitHub存储库,其中显示了创建水印的所有方法。“水印”的替代名称为“提示”。水印又名提示文本又名占位符文本。相关职位&&