VB.net制作背景透明的PictureBox控件

r040bk20032030 2009-06-11 11:31:12
VB.net中,如何实现PictureBox控件的背景透明?即,如果两个PictureBox控件重叠,通过PictureBox1中图像透明的部分,可以看到下面PictureBox2控件中的图像。
是不是必须自定义一个控件啊?
如果要自定义的话,应该如何做?

我在网上搜到一些资料,如MSDN中的。如下:
默认情况下,控件不支持透明背景色。但是,通过使用构造函数中的 Control.SetStyle 方法,可以让控件拥有不透明、透明或半透明的背景色。SetStyle 方法是 Control 类的用于为控件设置特定的样式首选项的方法,并可用来启用或禁用对透明背景色的支持。
使控件拥有透明背景色 ,在控件的代码编辑器中找到构造函数。 在构造函数中调用窗体的 SetStyle。
SetStyle(ControlStyles.SupportsTransparentBackColor, True)
这将使控件能够支持透明背景色。
在步骤 1 中添加的代码行下再添加下面的代码行。这将把控件的 BackColor 设置为 Transparent。
Me.BackColor = Color.Transparent

我看不上太懂。所谓的“在控件的代码编辑器中找到构造函数”是不是指Form1中的InitializeComponent()啊?
我按照上面说的,在 Private Sub InitializeComponent()中的'PictureBox部分添加代码:
SetStyle(ControlStyles.SupportsTransparentBackColor, True)
Me.BackColor = Color.Transparent
结果每次都报错。错误信息->“找不到方法Form.Windows.Forms.Form.SetStyle()”
这究竟是怎么回事啊?到底该如何解决?
...全文
1277 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
COLA168 2011-10-14
  • 打赏
  • 举报
回复

我也来看看
wwy2932767 2009-11-16
  • 打赏
  • 举报
回复
我也来看看
rzbai 2009-09-29
  • 打赏
  • 举报
回复
正在学习这方法
古今多少事 2009-06-15
  • 打赏
  • 举报
回复
Tag!
r040bk20032030 2009-06-13
  • 打赏
  • 举报
回复
5楼,太谢谢你了。
我找了好几天了,终于解决了这个难题。
a854468521 2009-06-12
  • 打赏
  • 举报
回复
顶,控件透明我也需要。
宝_爸 2009-06-11
  • 打赏
  • 举报
回复
msdn中SetStyle的sample code:

Public Sub EnableDoubleBuffering()
' Set the value of the double-buffering style bits to true.
Me.SetStyle(ControlStyles.DoubleBuffer _
Or ControlStyles.UserPaint _
Or ControlStyles.AllPaintingInWmPaint, _
True)
Me.UpdateStyles()
End Sub

VB中的构造函数应该是:
Public Sub New()

' This call is required by the Windows Form Designer.
InitializeComponent()

' Add any initialization after the InitializeComponent() call.

End Sub
r040bk20032030 2009-06-11
  • 打赏
  • 举报
回复
补充一下,我知道,改变控件的Parent,可以实现透明。可是这种方法对于我现在的要求,似乎不太适用。如:
如果将Picture1.Parent=picture2的话,虽然可以实现透明,可是却会强制改变Picture1的位置和显示区域(只有在Picture2内部的,才能显示。)而且当图层很多时,处理会很麻烦。
r040bk20032030 2009-06-11
  • 打赏
  • 举报
回复
SetStyle 方法我已经会用了。即使是这样,也达不到我期待的结果。
这种办法得出来的,只是让Picture1的透明部分颜色变为窗体颜色而已。依然会遮盖其下面的Picture2的图像。没能达到我预期的透明效果。
我想问一下,有没有其他的方法可以实现我想要的效果。

wuyq11 2009-06-11
  • 打赏
  • 举报
回复
1,misuite5.EXE Pegasus出品的图像控件,包含FxTools Gold V5.0(动态图像效果)和SuiteFace V2.0(多媒体制作),效果惊人(9,177KB)2,b003.ZIP 一个小巧的显示GIF动画的控件(24KB)3,b002.ZIP 功能十分强大的一个图像处理控件,可以打印、转换图像格式并有多种处理效果。(包括示例程序)(26KB)4,crystal.zip一个图形创建和处理控件, 它支持bmp, cur, dib, emf, gif, ico, jpg和wmf文件格式, 能装入, 存储, 画, 处理和打印图形. 有多种处理效果. (free) cool(48KB)5,gvocx.zip专业级别的vb下面读写图形文件的控件, 能支持art,bmp,cut,dib,emp,gem,gif,hrz,iff,img,png,jpg,lbm,mac,msp,pcx,ras,rle,tga,tif,wmf,wpg等文件格式(258KB)6,transimg.zip实现透明图形的控件(132KB)7,graphic.zip创建活泼图形的控件(free), 主页地址:http://www.geocities.com/siliconvalley/bay/8064/mads/mads.html(50KB)8,arbackgrctrl.zip建立windows墙纸方式的背景图形(31KB)9,gtimage.v1.4.zip一个扩展的picturebox控件(215KB)10,browser.zip支持bmp, jpeg, gif, ico和wmf格式的图片浏览控件(free), 主页地址http://www.planete.net/~lucash/activex/index.htm(181KB)11,anigif.zip使程序中可以使用Gif动画,而不是静态的图片(425KB)12,iconpicker.zip在应用程序中增加icon浏览界面的控件(28KB)13,b001.ZIP 透明图片控件(133KB) 14,card.ZIP Dll文件可以画出54张牌面和六种牌背,想做扑克牌游戏的朋友千万别错过(52KB)15,dd.zip 压缩位图图象并且保存到 JPG 格式(77KB)16,ccrpani.zip CCRP Animation Control V1.0 (101KB)17,bw6mp22s.zip BW MP3 OCX V2.02(554KB)18,PicOpener.zip PicOpener V2.0可以显示50多中图片格式(113KB)19,vbanigif.zip 显示gif动画的控件(12KB)20,scrprint.zip 屏幕拷贝程序(有例程) (320KB)21,gif.zip 能在Vb中显示动画(*.gif)的控件(39KB)22,gif89.zip 同样能显示动画的控件与gif.ocx相比,它可以接受任意大小的gif图片,只是需要编写的代码要多一些只能说个有千秋,自己选吧 (6KB)23,xpress40.exe Pegasus出品的图像控件,其中包含了多个控件,从图像的捕捉到显示、打印应有尽有,共支持70多种图像格式。(3611KB)24,adsvcap.zip这是一款用于VB 5.0 和 6.0的视频捕获控制器。用户可以在任何视频捕获设备上随意捕捉图象,也可以把表格或是图片转换成BMP格式(58KB) 25,picture.zip图形创建和处理控件(59KB)

16,547

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧