调整表单宽度以匹配 SplitContainer 大小
Adjust form width to Match SplitContainer Size
我在表单中有一个 SplitContainer,Dock
属性 设置为 Fill
。SplitPanel1 包含一个图片框,因此当图片框大小减小时,表单的右侧有空白 space.
如何 trim 调整表单大小以匹配其内容?
我试过了
Myform.Size = Myform.splitContainer1.Size;
来自启动表单。
但这不是working.What我做错了吗?
更新:
截图
设计视图
这是此处的设计视图,您可以看到拆分面板填充了表单。
有 2 个 panels.The 左面板包含一个图片框,右面板包含另一个面板。
RuntimeView
这是运行时view.You可以看到picturebox大小有reduced.I已经设置了splitcontainer有边框并且占全表
这是主窗体背后的代码,我在其中启动上面的窗体
myform.endPointPictureBox1.Width = myform.splitContainer1.Panel1.Width/2;
myform.endPointPictureBox1.Height = myform.splitContainer1.Panel1.Height;
myform.endPointPictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
在第二种形式中,我执行以下加载事件
splitContainer1.SplitterDistance = endPointPictureBox1.Width;
splitContainer1.Width = endPointPictureBox1.Width + splitContainer1.Panel2.Width;
this.Width = splitContainer1.Width;
更新 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;
}
}
我是在点击按钮时这样做的,但我认为没有区别。
结果如下:
点击前:
点击后:
我在表单中有一个 SplitContainer,Dock
属性 设置为 Fill
。SplitPanel1 包含一个图片框,因此当图片框大小减小时,表单的右侧有空白 space.
如何 trim 调整表单大小以匹配其内容?
我试过了
Myform.Size = Myform.splitContainer1.Size;
来自启动表单。
但这不是working.What我做错了吗?
更新:
截图
设计视图
这是此处的设计视图,您可以看到拆分面板填充了表单。 有 2 个 panels.The 左面板包含一个图片框,右面板包含另一个面板。
RuntimeView
这是运行时view.You可以看到picturebox大小有reduced.I已经设置了splitcontainer有边框并且占全表
这是主窗体背后的代码,我在其中启动上面的窗体
myform.endPointPictureBox1.Width = myform.splitContainer1.Panel1.Width/2;
myform.endPointPictureBox1.Height = myform.splitContainer1.Panel1.Height;
myform.endPointPictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
在第二种形式中,我执行以下加载事件
splitContainer1.SplitterDistance = endPointPictureBox1.Width;
splitContainer1.Width = endPointPictureBox1.Width + splitContainer1.Panel2.Width;
this.Width = splitContainer1.Width;
更新 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;
}
}
我是在点击按钮时这样做的,但我认为没有区别。
结果如下:
点击前:
点击后: