2

所以我有一个 C# winform,有一个面板和一个属于面板的文本框。

问题是文本框在我的 winform 上显示为一个洞。我可以看到它背后的内容(我的桌面、其他窗口等)。这对我来说听起来像是一个错误,因为经过一些谷歌研究,我得出的结论是文本框不能透明。

如果以下任何一项相关:winform 透明度键设置为透明、文本框backcolor=whiteforecolor=black.

我尝试重新启动 Visual Studio 和计算机,但问题仍然存在。

有什么办法可以解决吗?

4

1 回答 1

5

Color.Transparent 在 ARGB 中为 0,255,255,255。这意味着它的白色没有不透明度。由于透明度键用于非透明颜色(24 位 RGB),因此它不使用 Alpha 部分。这意味着。Color.Transparent == Color.White 用于 TransparencyKey

因此,您的行为是 100% 预期的,TransparencyKey 为白色,TextBox BackColor 为白色。因此文本框背景不可见。根本不是错误。

您可以通过根本不设置 TransparencyKey 或将其设置为 Color.Empty 或其他颜色来解决此问题。或者,如果您想保持白色作为 TransparencyKey,您可以更改 TextBox 的 BackgroundColor。

不过,将白色作为 TransparencyKey 并不是一个好主意(您已经知道原因了)。如果您仍想使用它,我建议您使用青色或洋红色(很少使用的颜色)

于 2013-01-14T10:53:00.337 回答