寻找一种更好的方法来改变父窗体的大小
Posted
技术标签:
【中文标题】寻找一种更好的方法来改变父窗体的大小【英文标题】:Looking for a better way to change parent form's size 【发布时间】:2008-12-08 18:53:40 【问题描述】:我有一个简单的应用程序,它显示拖到它上面的图片。我希望应用程序根据它显示的图片调整自身大小。下面的代码就是这样做的:
// Load the picture
Bitmap picture = new Bitmap(s);
// Calculate the size of the main form
this.Size = new Size(picture.Width +
(this.pictureBox.Padding.All +
this.pictureBox.Margin.All +
this.tableLayoutPanel.Padding.All +
this.tableLayoutPanel.Margin.All) * 2,
picture.Height +
(int)this.tableLayoutPanel.RowStyles[1].Height +
(this.pictureBox.Padding.All +
this.pictureBox.Margin.All +
this.tableLayoutPanel.Padding.All +
this.tableLayoutPanel.Margin.All) * 2);
// Display the file.
this.pictureBox.Image = picture;
它认为我需要一些帮助来改进这一点是相当明显的。随着表格变得越来越复杂,适当尺寸的计算也将变得越来越复杂。 有什么建议吗?
【问题讨论】:
【参考方案1】:您可以查看表单属性:
Form.AutoSize Form.AutoSizeMode这些,加上设置 PictureBox 的 AutoSizeMode 应该会给你想要的效果(无需编写任何代码)。
【讨论】:
不知道 AutoSize 的东西...当然这似乎是最好的方式。【参考方案2】:您可以计算旧图片和新图片之间的大小差异,然后将表单的大小调整该数量...只要表单上的所有其他内容保持相同大小即可。
【讨论】:
以上是关于寻找一种更好的方法来改变父窗体的大小的主要内容,如果未能解决你的问题,请参考以下文章
VB6中 怎么让MDI子窗体始终填满父容器,并随MDI窗体的大小改变而改变?
有空delphi子窗体关闭触发父窗体做出一系列改变的操作,主要就是子窗体关闭时能改变父窗体组件状态