2015-04-04 120 views
0

这看起来很简单,我遵循了我在其他帖子中找到的建议。如果我的图片盒增长以容纳大图片,我希望图片多生长一点,所以照片下面有一些空格(否则,它看起来像是裁剪照片的形式)。如何使用C#以编程方式调整窗体大小?

 if ((pictureBox1.Height + 25) >= this.Height) 
     { 
      this.Size = new Size(this.Width, (pictureBox1.Height + 35)); 
      this.Refresh(); // tried with and without refresh 
     } 

不幸的是,没有任何反应。当一步一步来,我看到表单的高度永远不会改变。我在这里读过堆栈溢出,设置最小大小或最大大小可能导致此行为,但都设置为它们的默认值(0,0)。

对此提出建议?

谢谢

+0

使用大小和高度属性没有多大意义,它包括窗口的标题栏和边框。改用ClientSize。和pictureBox1.Bottom。并确保你没有设置MaximumSize属性。 – 2015-04-04 11:03:32

回答

0

你看起来对我有效。我会尝试在刷新时检查你的代码并检查你正在获取的值,然后逐步完成刷新并再次检查。检查以确保您获得了this.Height和pictureBox1.Height的预期值。

这里是我用来测试这个确切的代码:

this.Size = new Size(300, 300); 
PictureBox pictureBox1 = new PictureBox(); 
pictureBox1.Size= new Size(700, 700); 
this.Controls.Add(pictureBox1); 
if ((pictureBox1.Height + 25) >= this.Height) 
{ 
    this.Size = new Size(this.Width, (pictureBox1.Height + 35)); 
    this.Refresh(); // tried with and without refresh 
} 

你将不得不发布更多的代码,以获得太大的帮助。

相关问题