自己做了个仪表控件。制作控件的时候把背景色设置成了透明的。为什么调用的时候还是会遮住Form窗口的底色呢?还有自定义的控件只能做成方形的吗?

解决方案 »

  1.   

    Form本身就有背景色,你上面覆盖一个透明的东西,它也不会透明的。
      

  2.   

    自定义控件要看你从那儿继承过来的了,如果是control或者usercontrol将背景设置问透明,是没有问题的。自定义的控件要表现的外观图形你可以自己在重绘函数里面自己绘制,比如圆形,椭圆形都可以
      

  3.   

    我自己绘制了圆形的。可是调用的时候总是有个方形的边框。设置成透明的也能看出来。我就是Form窗口有底色。我编写的控件是仪表盘,调用的时候这个控件就会把Form窗口的底色给遮住。。怎么才能让只有刻度指针有颜色,表盘部分直接透出Form窗口的颜色啊?
      

  4.   

    你把控件的边框样式设置为none
      

  5.   

    改变Region 改变形状  只有想不到 没有办不到
    winform的透明是假象  取的是Parent的背景色 所以看看 哪里错了
      

  6.   

    不好意思的大家。。我发现了我的最新问题,我是做了两个控件,一个控件做底,然后将仪表覆盖在这个控件上。可是我将仪表控件设置成透明的,它会显示出Form窗口的颜色而不是我做的第二个控件的颜色。怎么样才能显示出被仪表覆盖的那个控件的颜色啊?
      

  7.   

    层叠透明,基本上都需要自绘控件,系统默认似乎是不支持的重载 CreatePramas 可能也可以  ,具体没深入研究过最简单的就是改用WPF
      

  8.   

    在控件的Paint事件里自绘制背景色应该会解决吧!