十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
你可以这样的解决你的问题:
创新互联是一家专业提供惠安企业网站建设,专注与成都网站设计、网站制作、HTML5建站、小程序制作等业务。10年已为惠安众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。
(我用的是vs。net2005)
button1.backcolor=transprent
这样你自己好好的试一试吧,我试了一下,感觉不错。
PS:一下代码是复制的,因为Google一下就有
‘添加新模块:
Option Explicit
'透明接口调用
Private Declare Function SetwindowLong Lib "user32" _
Alias "SetwindowLongA" _
(ByVal hwnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) _
As Long
Private Declare Function GetwindowLong Lib "user32" _
Alias "GetwindowLongA" ( _
ByVal hwnd As Long, _
ByVal nIndex As Long) _
As Long
Private Declare Function SetLayeredwindowAttributes Lib "user32" ( _
ByVal hwnd As Long, _
ByVal crKey As Long, _
ByVal bAlpha As Long, _
ByVal dwFlags As Long) _
As Long
Private Const GWL_EXSTYLE = (-20)
Private Const LWA_ALPHA As Long = H2
Private Const WS_EX_LAYERED As Long = H80000
'设置窗口透明度
Public Sub SetFormToAlpha(hwnd As Long, lngAlpha As Long)
Dim tmpLog As Long
If hwnd = 0 Then Exit Sub
If lngAlpha = 0 And lngAlpha = 255 Then
tmpLog = GetwindowLong(hwnd, GWL_EXSTYLE) '窗口属性
Call SetwindowLong(hwnd, GWL_EXSTYLE, tmpLog or WS_EX_LAYERED)
Call SetLayeredwindowAttributes(hwnd, 0, lngAlpha, LWA_ALPHA)
End If
End Sub
简单的部分透明比较难做,不过可以换个方式考虑一下。
把本问题转换成在VB.NET 2005环境下创建不规则窗体(=普通窗体 - 透明部分)问题,解决方法就很多了,网上也有许多例子。如 章立民 的书里就详细讲过。
大致思路如下:
1。将backgroundimage设成一个位图(点阵图)
2.将Transparaencykey设成位图的背景颜色(位图最取背景单纯,单纯部分将成为透明部分)
3.如需要可以将formborderstyle设为none,会移除标题栏,并需要手动编写窗体移动、关闭等动作代码,
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.FormBorderStyle = Windows.Forms.FormBorderStyle.None
Me.BackColor = Color.White
Me.TransparencyKey = Color.White
End Sub
End Class
VB6专家百度Hi群1358368
窗体半透明: FormXX.Opacity=0.5或者: SetStyle(ControlStyles.SupportsTransparentBackColor, True)ControlXX.BackColor = Color.Transparent '或者是带Alpha的颜色ControlXX.BackColor = Color.FromArgb(128,Color.Red)
做二个窗口,下面那个透明,上面那个不透明。
解决移动的问题:移动上面那个窗口同时,要设置下面那个窗口的位置。做到同步移动,就可以实现你说的效果了。