我有 MainForms.cs 功能区,我想在功能区的右上角放置一个透明的 PictureBox (The PictureBox代表我的标志。)
代码:
InitializeComponent();
pictureBox1.Parent = ribbon1;
直到这里一切都很好。
当我调整表单的大小时, PictureBox 会消失。
在 OnPaint 功能上,重置所有设置:
protected override void OnPaint(PaintEventArgs pe)
{
this.Activate();
pictureBox1.Visible = true;
pictureBox1.Show();
pictureBox1.BringToFront();
}
但没有任何东西可以让Picturebox出现。拜托,你能告诉我我错过了什么。
答案 0 :(得分:2)
我下载了您正在使用的DLL并创建了一个小型测试示例。我注意到PictureBox的Parent属性设置为null。通过在OnPaint事件中将Parent添加回Picturebox,我可以在Form的大小增加时使其工作,但在Form size减少时会消失。当我在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);
}
}
}