问题的产生:多个picturebox重叠时,上面的picturebox即使设置transparent,但是透出来的也是form的底色,而不是透出下面那个picturebox的图案。摔!
解决的方法: 将多张png绘在同一个bitmap上,再显示在一个picturebox里。奇怪的是,网上的教程都有个去透明色的语句,我没有用,却也可以成功。
bm:大家的图都绘在bm上
btm:每次要绘的图
类变量:(e.g. class name :linyy1188)
public Bitmap bm ;
构造函数:bm = new Bitmap(861,627);
成员函数:
1.复制下这次要绘的图像
2.复制下以前会好的图像
3.h是被绘的
4.把image绘到h上
5.update一下bm
public void Overlap(Bitmap btm)
{
Bitmap image = new Bitmap(btm);
Bitmap h = new Bitmap(bm);
Graphics g = Graphics.FromImage(h);
g.DrawImage(image, new Rectangle(0, 0, 861, 627));
bm = h;
}
调用:(我很多图片都放在resources里了)
Overlap(new Bitmap(Properties.Resources.XXX))
显示:this.pictureBox1.Image = linyy1188.bm;
总结:
有些步骤多余,但是抱着成功就好的信念
reference: