如何将水印文本添加到C+中的文本框中(例如“在此处键入…”)+;winforms?(Vs2012)

如何将水印文本添加到C+中的文本框中(例如“在此处键入…”)+;winforms?(Vs2012),winforms,textbox,c++-cli,watermark,Winforms,Textbox,C++ Cli,Watermark,我想知道是否有人知道如何在VisualStudio2012的文本框中添加水印文本(例如灰色书写的“键入此处…”)。我在网上搜索了一个解决办法。任何帮助都将不胜感激。注意:我是C++的初学者你可以,但你不需要任何文本框定制;您可以使用事件来实现这一点。我会给你代码,但是1)visual studio再次给我c++/cli中的问题,2)这也会让你有点懒 因此,我将向您介绍一种方法:将文本框的前景色指定为灰色(color::gray),将文本指定为“在此处键入…”。然后订阅TextBox的TextCh

我想知道是否有人知道如何在VisualStudio2012的文本框中添加水印文本(例如灰色书写的“键入此处…”)。我在网上搜索了一个解决办法。任何帮助都将不胜感激。注意:我是C++的初学者

你可以,但你不需要任何文本框定制;您可以使用事件来实现这一点。我会给你代码,但是1)visual studio再次给我c++/cli中的问题,2)这也会让你有点懒


因此,我将向您介绍一种方法:将
文本框的前景色指定为灰色(
color::gray
),将文本指定为“在此处键入…”。然后订阅
TextBox
TextChanged
事件,每当文本发生更改(且不同)时,应首先清除“在此处键入…”,然后将颜色更改为
color::Black
。如果文本为“无”,则将颜色更改回
color::Gray
,并将文本更改为“在此处键入…”。很简单吧?但是如果你对实现有怀疑,你可以通过评论这个问题来问我。< /P >下载并引用C++项目。我下载了它,我试图引用它到我的C++项目,虽然它不能读取任何文件。有几个自定义的Tabbox控件,你可以使用。“占位符”,不是水印。可能与和重复。这对您来说更容易,因为在C++/CLI中不需要P/Invoke。您可以直接调用相应的Win32 API。@Daniel,我现在注意到您说您是C++/CLI的初学者(我也是),但如果你知道C#,它应该是非常简单的。事件通常是复杂的,但网上有很多关于这方面的资料,适用于C#的内容也适用于C++/CLI(除了lambdas和其他更高阶的东西)@Daniel,除了使用事件
TextChanged
,您还可以使用
GotFocus
LostFocus
,以获得可能更简单的逻辑。