如何让子窗体随着主窗体的尺寸变化自动改变大小?
有个问题请教,看看如何实现
我的界面是这样的,左侧是一个导航栏,右侧是放窗体的地方,主要是一个tabcontrol控件,当打开一个窗体时,就在tabcontrol上加了一页,这时,这个子窗体的大小是合适的,当隐藏导航栏时,tabcontrol的宽度就变大了。这时,子窗体的仍然是原来的尺寸,不合适,如何让子窗体跟着tabcontrol来自动变宽。
有个问题请教,看看如何实现
我的界面是这样的,左侧是一个导航栏,右侧是放窗体的地方,主要是一个tabcontrol控件,当打开一个窗体时,就在tabcontrol上加了一页,这时,这个子窗体的大小是合适的,当隐藏导航栏时,tabcontrol的宽度就变大了。这时,子窗体的仍然是原来的尺寸,不合适,如何让子窗体跟着tabcontrol来自动变宽。
子窗体是动态加载上的,如下 :
fpdy fpdy = new fpdy(this); //实例化表单,并把自身做为参数传递过去
System.Windows.Forms.Control ctlForm = fpdy;
Crownwood.Magic.Controls.TabPage tp = new Crownwood.Magic.Controls.TabPage("自来水收费",ctlForm);
this.tabControl1.TabPages.Add(tp).Selected = true;这个tabcontrol1的左侧是一个分隔导航栏,初始是展开的,在导航栏中点击选项,就打开了一个tabcontrol子页,并加载了一个子窗体,
我在子窗体的load中加入如下代码:
this.Size = this.Parent.Size;
this.WindowState = FormWindowState.Maximized;
这样初始打开时,大小是没有问题的,但是如果这时隐藏导航栏,tabcontrol就会往左移,并扩展为全屏,但是里面的子窗体还是刚初始的样子,变不了。
private void tabControl1_SizeChanged(object sender, EventArgs e)
{
try
{
foreach (childpage temp in mypage) //检测tabpage的title值,来决定释放哪个表单
{
temp.myformname2.Size = temp.myformname2.Parent.Size;
temp.myformname2.WindowState = FormWindowState.Maximized;
}
}
catch (System.Exception Er)
{ }
}
//mypage是我做的一个动态数组,用来存放打开的子窗体的名称,myformname2是代表名称的属性
private void tabControl1_SizeChanged(object sender, EventArgs e)
{
try
{
foreach (childpage temp in mypage) //检测tabpage的title值,来决定释放哪个表单
{
temp.myformname2.Size = temp.myformname2.Parent.Size;
temp.myformname2.WindowState = FormWindowState.Maximized;
}
}
catch (System.Exception Er)
{ }
}
//mypage是我做的一个动态数组,用来存放打开的子窗体的名称,myformname2是代表名称的属性
private void tabControl1_SizeChanged(object sender, EventArgs e)
{
try
{
foreach (childpage temp in mypage) //检测tabpage的title值,来决定释放哪个表单
{
temp.myformname2.Size = temp.myformname2.Parent.Size;
temp.myformname2.WindowState = FormWindowState.Maximized;
}
}
catch (System.Exception Er)
{ }
}
//mypage是我做的一个动态数组,用来存放打开的子窗体的名称,myformname2是代表名称的属性
子窗体.parent=tabcontrol.pages[index];
子窗体.dock=dockstyle.dock;主要是代码里控制子窗体的dock属性!