十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
属性是浮云
成都创新互联是一家专业提供东兴企业网站建设,专注与网站制作、网站设计、H5建站、小程序制作等业务。10年已为东兴众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。
Opacity是double类型的且取值范围是0-1
而Me.Opacity = 20 20是integer 由于属性限制自动转换成double为1
因此
me.opacity=0.2
正解
添加Slider控键.用于调节透明度 Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
Public Const GWL_EXSTYLE = (-20)
Public Const WS_EX_LAYERED = H80000
Public Const LWA_ALPHA = H2Public Function TranslucentForm(frm As Form, TranslucenceLevel As Byte) As Boolean
SetWindowLong frm.hwnd, GWL_EXSTYLE, WS_EX_LAYERED
SetLayeredWindowAttributes frm.hwnd, 0, TranslucenceLevel, LWA_ALPHA
TranslucentForm = Err.LastDllError = 0
End Function
TranslucentForm 窗口名(me), 透明度大小(0-255)
TranslucentForm Me, Slider1.Value(例子)
简单的部分透明比较难做,不过可以换个方式考虑一下。
把本问题转换成在VB.NET 2005环境下创建不规则窗体(=普通窗体 - 透明部分)问题,解决方法就很多了,网上也有许多例子。如 章立民 的书里就详细讲过。
大致思路如下:
1。将backgroundimage设成一个位图(点阵图)
2.将Transparaencykey设成位图的背景颜色(位图最取背景单纯,单纯部分将成为透明部分)
3.如需要可以将formborderstyle设为none,会移除标题栏,并需要手动编写窗体移动、关闭等动作代码,
不知道你用过VB6没有,vb6里的image控件和label控件是可以完全透明的,就是控件下面不管有什么都可以显示出来。
但vb.net里没有这样完全透明的控件了。
vb.net 里面设完背景色透明之后只显示出它属于的那个窗口的背景,比如form里有个label,label透明之后只能显示出他盖住的那部分form的图像,而如果panel里有个label的话,那他只显示panel的背景图像。
这种功能读winform来说只有容器才能设置透明度,如form、panel类控件,其他的不是不可以,要重写背景参数,而且重写完了后与win7、Xp互不兼容,闪烁,并不提倡。.net的解决办法是wpf,控件可以设置opation属性,灵活控制透明度,并且后台静态刷新,因为他是xaml机制构造。