C# winForm MDI使用小记
代码没能带回来,博文是在linux平台写的,有些名字没记牢,会有出入,attention 1,首先,父窗口要设置isenablemdi属性。实现MDI结构的父子窗口套用,最重要的是在父窗口实例化自窗口(例frmForm),(名字好像有些错误)FrmForm frmFom=new FrmForm();frmForm.parent=this; 2,关于自窗口在父窗口中的
代码没能带回来,博文是在linux平台写的,有些名字没记牢,会有出入,attention
1,首先,父窗口要设置isenablemdi属性。实现MDI结构的父子窗口套用,最重要的是在父窗口实例化自窗口(例frmForm),(名字好像有些错误)
2,关于自窗口在父窗口中的自动排列,C#提供一个父窗口属性定义,(好像是mdiLayout),通过设置这个属性即可实现层叠、横向、纵向排列(大于三个子窗口时自动调整为平均分配的窗口排列)。
3,我当时调的时候只用三个窗口,所以只看到横向或纵向排列的情况,不知道Vertical和H...在大于三个时可以均匀排布(如左边三个,右边三个)。于是就自己写了一个小算法,也实现了功能;花了两三个小时的样子,感觉效果比自动排的漂亮,呵呵,黄婆了
我的实现方法:
a,利用parentForm.width和parentForm.height以及可以确定的其它控件的大小,计算得到mdi窗口大小
b,根据mdi子窗口数量计算平均每个窗口的面积
c,从(0,0)开始逆序从上往下,从左到右处理每个窗口的location,并把size设置为平均面积(最后查看的窗口在最前面)
这当中有几个细节
a,用arraylist 保存打开的mdi自窗口信息,方便管理和配置(如location,size配置,非常方便)
b,对于奇数个的情况,算平均时窗口数+1;给最中间的窗口的size*2,使其横向铺在最下面,面积为平均值的两倍
Ok,就这样了
更多推荐
所有评论(0)