C# 将自定义用户控件的背景色更改为透明

C# 将自定义用户控件的背景色更改为透明,c#,gdi+,gdi,C#,Gdi+,Gdi,我正在用c#构建一个自定义用户控件,该控件的外观是省略的,但是可以使用默认颜色查看该控件的角 我认为解决这一问题的最佳方法是使控件的背景色透明,但如果我在属性中这样做,则不起作用。在控件的构造函数中,尝试添加对SetStyle(ControlStyles.SupportsTransparentBackColor)的调用。在控件的构造函数中,尝试添加对SetStyle的调用(ControlStyles.SupportsTransparentBackColor)这没什么意义。如果控件形状是椭圆,你怎

我正在用c#构建一个自定义用户控件,该控件的外观是省略的,但是可以使用默认颜色查看该控件的角


我认为解决这一问题的最佳方法是使控件的背景色透明,但如果我在属性中这样做,则不起作用。

在控件的构造函数中,尝试添加对
SetStyle(ControlStyles.SupportsTransparentBackColor)的调用。
在控件的构造函数中,尝试添加对
SetStyle的调用(ControlStyles.SupportsTransparentBackColor)

这没什么意义。如果控件形状是椭圆,你怎么可能看到角点?使用Region属性以防万一。这没什么意义。如果控件形状是椭圆,你怎么可能看到角点?使用Region属性以防万一。好的,我做了一些测试,它可以工作,但我没有另一个问题。如果我将控件置于其他控件之上,则角点是不透明的。那么,我如何解决这个问题呢?这是因为WinForms不执行“真实”操作透明度。当一个控件有一个透明的背景时,它实际上只是用其父控件的背景色绘制背景。请看这个问题:好的,我做了一些测试,它工作了,但我有另一个问题。如果我把控件放在其他控件上,角点是不透明的。那么,我如何解决这个问题呢?这是因为nForms不具有“真实”透明度。当控件具有透明背景时,它实际上只是以其父控件的背景色绘制其背景。请参见此问题: