如何让子窗体随着主窗体的尺寸变化自动改变大小?

lid123456 2008-08-24 09:42:10
如何让子窗体随着主窗体的尺寸变化自动改变大小?
有个问题请教,看看如何实现
我的界面是这样的,左侧是一个导航栏,右侧是放窗体的地方,主要是一个tabcontrol控件,当打开一个窗体时,就在tabcontrol上加了一页,这时,这个子窗体的大小是合适的,当隐藏导航栏时,tabcontrol的宽度就变大了。这时,子窗体的仍然是原来的尺寸,不合适,如何让子窗体跟着tabcontrol来自动变宽。
...全文
549 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
stybadboy 2008-08-25
  • 打赏
  • 举报
回复
--------如何让子窗体跟着tabcontrol来自动变宽。
子窗体.parent=tabcontrol.pages[index];
子窗体.dock=dockstyle.dock;

主要是代码里控制子窗体的dock属性!
enaking 2008-08-25
  • 打赏
  • 举报
回复
将tableLayoutPanel写Panel配合使用(前者放外面,后者放里面),,将你要需要和主窗体一起改变大小的地方在tableLayoutPanel的Columns中用百分比,不需要改变的地方用固定值,Panel设dock属性
lid123456 2008-08-24
  • 打赏
  • 举报
回复
我试着这样做了,还是不行
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是代表名称的属性
lid123456 2008-08-24
  • 打赏
  • 举报
回复
我试着这样做了,还是不行
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是代表名称的属性
lid123456 2008-08-24
  • 打赏
  • 举报
回复
我试着这样做了,还是不行
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是代表名称的属性
atlasroben 2008-08-24
  • 打赏
  • 举报
回复
在tablepage的resize事件或者sizechanged事件中控制你的窗体大小与位置
lid123456 2008-08-24
  • 打赏
  • 举报
回复
在窗体的属性里也找不到Anchor
lid123456 2008-08-24
  • 打赏
  • 举报
回复
不行啊
子窗体是动态加载上的,如下 :
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就会往左移,并扩展为全屏,但是里面的子窗体还是刚初始的样子,变不了。
net0003 2008-08-24
  • 打赏
  • 举报
回复
Anchor
vrhero 2008-08-24
  • 打赏
  • 举报
回复
Dock

or

Anchor

属性...

没事儿看看MSDN...

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧