我能创建一个客户区域为透明(使用透明键)且可点击的窗口吗?

3
使用C#创建一个窗口,其边框是正常的,但客户区域是透明的(使用透明键)。在XP上,我能够通过它点击下面透明区域中的项目;然而,在W7上无法工作。有没有办法使这个在W7(和XP)上工作?
更新: 感谢所有人的快速回应!看起来我的问题的关键是我不幸地选择了黄色作为我的透明键。我想让它在Visual Studio中显眼,以便我记得它是透明的;而这种颜色选择是阻止点击穿透工作的原因。当我改成灰色背景色时,它就可以正常工作了。

1
尝试一下Gray吗? - Raj Ranjhan
有趣的是...出于某种原因,我选择了黄色作为我的透明度关键颜色。当我将它更改为灰色时,现在可以进行点击穿透。这对任何人都有意义吗? - Ed.
Anurag,我想将你的回答设置为答案,但你必须将其发布为实际答案,我才能这样做。 - Ed.
2个回答

2
根据这篇帖子,解决方法是将TransparencyKey设置为Gray
  this.BackColor = Color.Gray;
  this.button1.BackColor = Color.Blue;
  this.TransparencyKey = Color.Gray;

0
this.TransparencyKey = this.BackColor;

在Windows 7中,这对我来说运行良好。

enter image description here enter image description here


我并没有完全这样做。我为透明关键字设置了一种颜色,然后将背景颜色分配给相同的颜色(本质上是相同的,但不同)。这样可以允许你进行“点击穿透”吗? - Ed.
此外,窗口的TopMost属性设置为true,因为在开始打印后,记事本程序将变为活动窗口,而不是Form1窗口。 - Sergey Podolsky
我很好奇你的BackColor是否是某种灰色调(R=G=B);因为在我看来,“灰色”很重要。如果我将backcolor设置为transparencykey,但不使用灰色,则点击穿透将不起作用。 - Ed.
是的,我刚发现你是对的。对我来说,黄色似乎也无法进行点击穿透。 - Sergey Podolsky

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接