C#winforms透明表单覆盖问题

时间:2014-10-16 13:43:25

标签: c# winforms transparent

我的主要表单上有一个水平拆分容器。顶部包含找到here的对象列表视图控件。

我正在使用之前C#透明叠加层answer的代码。

我的问题似乎与对象列表视图有关。使用上面答案中的代码,透明表单完美地覆盖了所有控件,但是当它到达对象列表视图时,它似乎在这个特定控件上绘制得更暗。

Splitcontainer overlayed

如果我关闭透明覆盖层并将空白面板放在前面,当我打开透明覆盖层时,它仍会显示这个较暗的部分,就好像对象列表视图控件仍然可见。

Blank panel overlayed

我首先想知道为什么会这样。但我也想知道如何解决这个问题,以便叠加是一致的。

  • 如果您想测试这个,我创建了一个简单的项目来演示问题here

要复制发生的事情......

  1. 将splitcontainer向下拖动一点,然后点击Overlay按钮。

  2. 单击白色面板关闭叠加层。单击“空白面板”按钮,然后再次单击“叠加”按钮。

  3. 请注意,在Plexiglass类中,它仅将面板作为参数用于此演示,在我的实际项目中,它将主窗体作为参数。

    修改

    我将颜色从深灰色变为白色,效果很好。我不确定为什么深灰色会导致这个问题,但我很满意它看起来像白色的样子,所以我会坚持下去。

1 个答案:

答案 0 :(得分:0)

由于某种原因,透明表单的Color.DarkGray BackColor属性导致了问题。将BackColor更改为Color.White修复此问题。

感谢Patrice Gahide帮助我。