如何使窗口部分点击?

时间:2018-12-12 20:09:16

标签: c# .net winforms

我正在尝试创建一个具有以下属性的窗口:

  • 除了很小的移动区域外,完全看不见
  • 可以单击进入其下方的窗口,除非您在该较小区域中单击即可
  • 没有显示在任务栏上(尽管此刻此刻不那么按动)

我可以弄清楚如何使用WS_EX_LAYEREDWS_EX_TRANSPARENT,设置TopMost以及更改不透明度来使整个窗口透明(部分或全部)透明并单击。无法在有限的部分中弄清楚如何使这些要求真正适用于窗口。知道从哪里开始吗?

编辑:有人指出,制作一个巨大的,不可见的窗口是没有意义的,创建一个窗口并使用FormBorderStyle.FixedToolWindow和{{1 }}使其无边界且不出现在任务栏上,然后四处移动。我仍然需要弄清楚如何使窗口的“背景”透明并单击,所以我将这个问题搁置一遍。

1 个答案:

答案 0 :(得分:0)

因此,我设法通过反复试验弄清楚了这一点,我为花时间陪我道歉。

这里的解决方案是:

  • OnPaintBackground覆盖为空方法,因此实际上并没有在背面涂上任何颜料

  • 设置样式以使其支持透明作为底色,然后将底色和TransparencyKey设置为透明

  • FormBorderStyle设置为None,将TopMost设置为False,将ControlBox设置为False,将ShowInTaskbar设置为{{1} }

最终结果:一种完全不可见并且可以单击的表单,同时仍允许用户与放置在表单上的任何控件进行交互。