作者cole945 (躂躂..)
看板Visual_Basic
标题Re: [VB2005] 两个图层重叠
时间Thu Jun 14 02:12:59 2007
※ 引述《wen1015 (我是小狗丁丁的娘)》之铭言:
: 想请问一下有没有什麽方法可以让它真的变成透明的呢
虽然是有办法可以设成透明~
可是做出来的效果不是很好~
尤其在上层的图片(也就是你所谓的picturebox)要常常移动..
而且有多个控制项重叠时, 图层顺序会乱掉..
比较建议的做法是,
直接在在 Paint 事件里把那些小图片直接绘在 Form(或其他控制项)上面..
如果你以前没有直接绘图片(不透过PictureBox)的经验的话..
我有个比较容易的做法.. 而且不用修改太多你现有的程式..
(修改程式之前先备份吧..)
先把 Form 上的那些 PictureBox的 Visible都设成 false (不显示)
然後在你的 Form的Paint事件里写
' 把 form 上的 picturebox iamge都图到form上面
For i As Integer = Controls.Count - 1 To 0 Step -1
If TypeOf Controls(i) Is PictureBox Then
e.Graphics.DrawImage(CType(Controls(i), PictureBox).Image, _
Controls(i).Left, Controls(i).Top)
End If
Next i
如果你有移动了任何一个 picturebox的位置座标,
那就呼叫 Me.Invalidate() 叫 Form把图片都重绘一次,
还有要把 Form的 DoubleBuffered设成true, 绘图比较不会有闪烁的情形发生~
如果你的图档是bmp,那绘之前就要用Bitmap.MakeTransparent设成透明
再绘上去才不会有有色背景出现..
大略是酱 ._./
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.139.176.251
1F:推 wen1015:谢谢 虽然我有点看不太懂 可是我会先试试看的 06/15 00:09