gpt4 book ai didi

c# - 调整我的表格后 PictureBox 消失了

转载 作者:太空宇宙 更新时间:2023-11-03 10:43:02 27 4
gpt4 key购买 nike

我有一个带有RibbonMainForms.cs,我想在功能区的右上角放置一个透明的PictureBox(The PictureBox代表我的标志)。

This is my MainForm with a Logo on the top rigth

这是我试过的:

  • 我把PictureBox放在功能区的右上角
  • 我将BackColor设置为透明。
  • 我加载一张 PNG 图片(包含透明度)
  • 我将图像的父级设置为色带(这样 PictureBox 相对于色带将是透明的)

代码:

InitializeComponent();
pictureBox1.Parent = ribbon1;

到这里为止一切都很好。

我的问题:

当我调整我的 Form 大小时,PictureBox 消失了。

OnPaint 功能上,我像这样重置了所有设置:

protected override void OnPaint(PaintEventArgs pe)
{
this.Activate();
pictureBox1.Visible = true;
pictureBox1.Show();
pictureBox1.BringToFront();
}

但是没有任何东西可以使 Picturebox 出现。请告诉我我错过了什么。

最佳答案

我下载了您正在使用的 DLL 并创建了一个小测试示例。我注意到 PictureBox 的 Parent 属性设置为 null。通过在 OnPaint 事件中将 Parent 添加回 Picturebox,如果 Form 的大小增加,我能够让它工作,但当 Form 大小减小时它会消失。当我将相同的代码放入 OnResize EventHandler 时,它会像您期望的那样工作。

public partial class Form1 : Form
{
PictureBox pictureBox1 = new PictureBox();
public Form1()
{
InitializeComponent();

pictureBox1.Image = Image.FromFile(@"C:\temp\test.jpg");
pictureBox1.Parent = ribbon1;
pictureBox1.Location = new Point(this.Width-pictureBox1.Width,10);


}


protected override void OnResize(EventArgs e)
{
base.OnResize(e);
if (pictureBox1.Parent == null)
{
pictureBox1.Parent = ribbon1;
pictureBox1.Visible = true;
pictureBox1.Location = new Point(this.Width - pictureBox1.Width, 10);
}
}
}

关于c# - 调整我的表格后 PictureBox 消失了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24586291/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com