繁体   English   中英

如何将透明的winform设置为面板透明面板,以显示背后的背景?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM