参照 www.myexception.cn/c-sharp/1683098.html 的方法,用控件的Controls来包含,
但 这也会产生其他问题,
1。如窗体切换,按键ctrl+tab,
2。如主窗体的标题,(一般mdi是 主窗体text – [子窗体text])
3。最大化窗体,虽然都设置了dock,还是有尺寸不发生改变的问题
4。工具栏,菜单没办法合并的问题,,,
综上,能否还有别的办法?
例如重绘之类的
(重绘的不是很清楚能不能实现,本人只测了OnPaint,好像不行,进行重绘,在非mdi容器有效果的
,在mdi容器就不行,)
谢谢
解决方案
5
换一个方法
[DllImport("user32.dll")] static extern long GetWindowLong(IntPtr hWnd, int nIndex); [DllImport("user32.dll")] static extern long SetWindowLong(IntPtr hWnd, int nIndex, long value); private void Form1_Load(object sender, EventArgs e) { foreach (Control c in this.Controls) { if (c is MdiClient) { IntPtr h = c.Handle; SetWindowLong(h, -16, GetWindowLong(h, -16) & ~0x00800000L); SetWindowLong(h, -20, GetWindowLong(h, -20) & ~0x00000200L); break; } } }
25
http://codego.net/366493/