关于特殊形状窗体的制作
vb.net 2003中,我设置了窗体的透明色,例如绿色,然后窗体的背景图片中,有一部分是绿色的,运行时,图片中绿色部分就变成透明的了,很方便的制作了特殊形状的窗体。
但是,现在有一个疑问,如果系统色彩设置为32位,最高的真彩色,那么,这种方法无效,不会出现透明部分,而如果系统色彩为16位,就可以。
请问,这是为什么呢?有没有在32位情况下,可以很方便实现这种效果的方法?
或者,求代码:程序启动时,自动将系统色彩从32位设置为16位的?
请达人指教
[解决办法]
你其实可以将你图片的棱角作成透明的,然后设置窗体的背景颜色和窗体的透明色一致,(颜色最好是图片上没有的一种).这样好象就不会出现你说的情况了.
[解决办法]
通过透明来设置窗体为其它的形状只是一种方法,这个方法有着它的很明显的缺点,你可以通过如下的方法来使一个窗体或者控制来显示成一个任意形状,比如使用Control.Region来设置就可以了,代码参考如下:
Dim path As Drawing2D.GraphicsPath = New Drawing2D.GraphicsPath()
path.AddEllipse(Me.ClientRectangle)
Me.Region = New Region(path)