问题描述
- VB.NETMDI窗体显示问题?
-
1、Form1为MDI主窗体上有Panel1、SplitContainer1(Panel1、Panel2)控件
2、Form1中的Button1_Click显示子窗体:
Dim frm As Form2 = New Form2
frm.MdiParent = Me
frm.TopLevel = False
frm.BringToFront()
frm.TopMost = True
frm.Show()
问题: 子窗体被Panel1、SplitContainer1控件所遮挡,如何将子窗体显示在MDI窗体所有控件的最前面;
解决方案
在mdi窗体上添加一个panel,这个panel撑满整个MDI,
把SplitContainer1之类的都放在这个Panel中。
让后在把窗体设置为
frm.MdiParent = Me
frm.Parent = Me.Panel1
frm.BringToFront()
解决方案二:
http://bbs.csdn.net/topics/300109845
解决方案三:
using System.Runtime.InteropServices;
[DllImport("user32")]
public static extern int SetParent(int hWndChild, int hWndNewParent);
Form2 f2 = new Form2();
f2.MdiParent = this;
f2.Show();
SetParent((int)f2.Handle, (int)this.Handle);
该方法可以将子窗体显示出来,但不在MDI容器中,游离到MDI之上,显示效果不好;
时间: 2024-08-04 11:40:59