调整表单宽度以匹配SplitContainer Size

时间:2017-05-11 10:56:10

标签: c# .net winforms splitcontainer

我在表单中有一个SplitContainer,Dock属性设置为Fill .SplitPanel1包含一个图片框,所以当图片框大小减小时,表单的右侧有空格。

如何修剪表单大小以匹配其内容?

我试过了

Myform.Size = Myform.splitContainer1.Size;

来自启动表格。

但这不起作用。我做错了什么?

更新

截图

设计视图

这是设计视图,您可以看到spiltpanel填充表单。 有2个面板。左侧面板包含一个图片框,右侧面板包含另一个面板。

enter image description here

RuntimeView

这是运行时视图。您可以看到图片框大小已减少。我已将splitcontainer设置为具有边框,占据完整格式

enter image description here

这是主表单背后的代码,我在其中启动上面的表单

myform.endPointPictureBox1.Width = myform.splitContainer1.Panel1.Width/2;
myform.endPointPictureBox1.Height = myform.splitContainer1.Panel1.Height;
myform.endPointPictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;

在第二种形式中,我执行以下Load事件

splitContainer1.SplitterDistance = endPointPictureBox1.Width;
splitContainer1.Width = endPointPictureBox1.Width + splitContainer1.Panel2.Width;
this.Width = splitContainer1.Width;

1 个答案:

答案 0 :(得分:2)

更新2

以下是您需要执行此操作的代码:

private void button1_Click(object sender, EventArgs e)
{
    pictureBox1.Image = Image.FromFile(@"c:\Users\Admin\Desktop\tmp.png");
    if(splitContainer1.Orientation== Orientation.Vertical)
    {
        var prevWidthPanel2 = splitContainer1.Panel2.Width;
        splitContainer1.SplitterDistance = pictureBox1.Image.Width;
        this.Width = (this.Width - splitContainer1.Panel2.Width) + prevWidthPanel2;
        splitContainer1.SplitterDistance = pictureBox1.Width;
    }
}

我是按下按钮进行此操作,但我认为没有区别 结果如下:

点击之前:

enter image description here

点击后: enter image description here