[英]How to set a transparent winform, into a panel transparent panel, to show as background what's behind?
我正在编写一个程序,该程序的主要形式是一个 pictureBox,我将其用作公共背景图像,我还使用一个面板,该面板将 pictureBox 作为父级,我使用该面板将我的其他 winforms 加入其中,让我们称这个winforms为“A”,我的问题是我将A winforms设置为透明,所以我可以看到面板后面的图片框,现在,我的问题在于当我加入A winforms时,它们显示为透明,但是由于不显示图片框的问题,它们显示了程序背后的内容。
这是我想在 A winforms 后面显示的 PictureBox
这就是我所说的,如您所见,该程序正在向我展示我自己的桌面墙纸
拜托,我需要你的帮助,如你所知,如你所知,我的英语不太好,所以我提前向自己道歉。 :)
要设置窗体的背景,您不需要添加PictureBox
。 你只需要设置它的BackgroundImage Property
。
this.BackgroundImage = Image.FromFile(@"D://pic/b.jpg");
然后将面板设置为透明。
panel1.BackColor = Color.Transparent;
panel1.Dock = DockStyle.Fill;
要将 FormA 设置为透明,还需要在构造函数中调用SetStyle
。
public FormA()
{
this.SetStyle(ControlStyles.SupportsTransparentBackColor, true);
InitializeComponent();
}
这是简单的演示。
private void Form1_Load(object sender, EventArgs e)
{
FormA formA = new FormA();
formA.FormBorderStyle = FormBorderStyle.None;
formA.TopLevel = false;
formA.Dock = DockStyle.Fill;
panel1.Controls.Add(formA);
formA.BackColor = Color.Transparent;
formA.Show();
}
希望这可以帮到你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.