C#透明图片盒

C#透明图片盒,c#,transparency,picturebox,C#,Transparency,Picturebox,我已尝试解决方案,但收到“无效窗口句柄”消息 没有 protected override void OnMove(EventArgs e) { RecreateHandle(); //-- seems to be a problem } 表单正在运行,但pictureBox没有透明度 我该怎么办?嗯,在移动窗户的同时破坏它是一个非常糟糕的主意。PictureBox已经支持透明度。当然,但不支持移动PictureBox。PictureBox的transperacy是由父图像创建的层(因此

我已尝试解决方案,但收到“无效窗口句柄”消息

没有

protected override void OnMove(EventArgs e)
{
    RecreateHandle(); //-- seems to be a problem
}
表单正在运行,但pictureBox没有透明度


我该怎么办?

嗯,在移动窗户的同时破坏它是一个非常糟糕的主意。PictureBox已经支持透明度。当然,但不支持移动PictureBox。PictureBox的transperacy是由父图像创建的层(因此它是一种伪装)。当pictureBox移动时,它会创建一个新层。不幸的是,创建不正确(图片与原始图片不匹配)。尝试创建一个背景层(在窗体或其他pictureBox上)和一个带有transparent.png的pictureBox(带有png.BackColor=Color.transparent和png.Parent=background\u layer);使用计时器(10毫秒)移动png,看看它是如何工作的。这就是为什么我在寻找一个解决方案,使pictureBox真正透明。代码中的可能意图是让窗口重新绘制。重新创建句柄可以做到这一点,但这是原子弹方法。改为使用Invalidate()。