打开透明度并且控件失去焦点时,文本框文本消失

时间:2017-01-10 17:55:50

标签: c# winforms

我研究过创建一个允许透明背景的自定义winforms文本框。我阅读了StackOverflow帖子:

Link to post.

在那篇文章中,dkiefer询问了文本在文本框中输入后文本消失的问题。没有人回答他的问题,我也遇到了同样的问题。文本消失了,但是当我回去编辑它时它仍然存在。

我可以发布相当冗长的完整代码,但它与上面提到的StackOverflow链接完全相同。有没有人对此有答案?

1 个答案:

答案 0 :(得分:1)

我尝试做类似的事情时遇到了各种各样的问题。我的具体问题是我将透明文本框覆盖在图像上 - 当透明文本框和表单背景之间存在另一个控件时,整个解决方案就会爆炸。

我最终做的事情(虽然看起来有点像hackish)是使用透明文本框和标签。我处理了文本框上的Leave(失去焦点)事件和标签上的Click事件,并使用这些处理程序同步文本和切换控件的可见性。当您单击标签时,您会神奇地拥有一个可以输入的漂亮透明文本框,当它失去焦点时,您将拥有一个按预期工作的透明标签。我没有方便的源代码,但我认为我定义了一个包含大部分逻辑的用户控件,因此可以直接插入并根据需要使用。

我确信有更好的解决方案(使用WPF是我个人的最爱"更好的解决方案",虽然我的同事已经厌倦了听到它。哈哈)