public void showMdiChild(System.Windows.Forms.Form MdiChildForm)
{
int i;
Form[] frmForms = this.MdiChildren;
bool btrue=false;
Cursor.Current=Cursors.WaitCursor;
for (i=0; i<frmForms.Length; i++)
{
//窗体类实例转换成字符串时相同,说明是同一个实例
if (frmForms[i].ToString()==MdiChildForm.ToString())
{
MdiChildForm.Dispose(); //释放刚创建的子窗体的实例资源
this.MdiChildren[i].Activate(); //将已经创建的实例窗体激活
btrue=true;
}
}
//如果i等于窗体数组的长度,
//说明上面的循环完成后没有找到窗体实例与传过来的窗体实例相同,
//说明新创建的窗体没有被创建过,那么就把它显示出来
if(btrue==false)
{
MdiChildForm.MdiParent = this; //指定窗体的MDI父窗体
MdiChildForm.Show();
if(MdiChildForm.MaximizeBox ==false)
{
MdiChildForm.WindowState = FormWindowState.Normal ;
MdiChildForm.StartPosition =FormStartPosition.CenterScreen;
}
else
MdiChildForm.WindowState = FormWindowState.Maximized ;
}
if(this.MdiChildren.Length>0)
{
panelMain.Hide ();
bShowBtn=false;
}
Cursor.Current =Cursors.Default ;
}
{
int i;
Form[] frmForms = this.MdiChildren;
bool btrue=false;
Cursor.Current=Cursors.WaitCursor;
for (i=0; i<frmForms.Length; i++)
{
//窗体类实例转换成字符串时相同,说明是同一个实例
if (frmForms[i].ToString()==MdiChildForm.ToString())
{
MdiChildForm.Dispose(); //释放刚创建的子窗体的实例资源
this.MdiChildren[i].Activate(); //将已经创建的实例窗体激活
btrue=true;
}
}
//如果i等于窗体数组的长度,
//说明上面的循环完成后没有找到窗体实例与传过来的窗体实例相同,
//说明新创建的窗体没有被创建过,那么就把它显示出来
if(btrue==false)
{
MdiChildForm.MdiParent = this; //指定窗体的MDI父窗体
MdiChildForm.Show();
if(MdiChildForm.MaximizeBox ==false)
{
MdiChildForm.WindowState = FormWindowState.Normal ;
MdiChildForm.StartPosition =FormStartPosition.CenterScreen;
}
else
MdiChildForm.WindowState = FormWindowState.Maximized ;
}
if(this.MdiChildren.Length>0)
{
panelMain.Hide ();
bShowBtn=false;
}
Cursor.Current =Cursors.Default ;
}
解决方案 »
- Windows Server 2008 R2 文件夹备份问题,请各位给思路
- 一个反射的问题
- BYTE[]位置问题?
- help!-->无法在 DLL aspnet_isapi.dll 中找到名为 NoBestFitGetCPMaxCharSize 的入口点??
- C#重绘窗体问题,一定要设置FlatStyle为NONE吗?
- 我写了个文件上传程序,上传到服务器指定目录?
- WPF C# 高手请进~~~
- 我再问 快捷方式的一点问题
- 类型化数据集如何进行继承!
- 10000分送给你!!!!!
- comboBox的小问题?(donger2000(东东)请进)
- 点击一个按钮实现多个textBox在panel1中的加入,然后在n个textBox中加入数据,数据如何取出?
private const int GW_HWNDFIRST = 0;
private const int GW_HWNDLAST = 1;
private const int GW_HWNDNEXT = 2;
private const int GW_HWNDPREV = 3;
private System.Windows.Forms.Button button2;
private const int GW_OWNER = 4;
[DllImport("user32.dll")]
private extern static System.IntPtr GetWindow(System.IntPtr hWnd,int wCmd);[DllImport("user32.dll")]
private extern static System.IntPtr GetDesktopWindow () ;[DllImport("user32.dll")]
private extern static int GetWindowText(System.IntPtr hWnd,System.Text.StringBuilder lpString,int nMaxCount);[DllImport("user32.dll")]
private extern static int GetWindowTextLength(System.IntPtr hWnd);[DllImport("user32.dll")]
private extern static int GetClassName(System.IntPtr hWnd,System.Text.StringBuilder lpClassName,int nMaxCount);private void button2_Click(object sender, System.EventArgs e)
{
System.Text.StringBuilder text = new System.Text.StringBuilder(256);
System.IntPtr LastHwnd = System.IntPtr.Zero ;
System.IntPtr CurHwnd = GetDesktopWindow() ;
CurHwnd = GetWindow(CurHwnd, GW_Child);
do
{
if (CurHwnd==System.IntPtr.Zero ) break;
GetWindowText(CurHwnd,text,128);
if(text.ToString().ToUpper()=="目标窗体的标题")
{
//Form2类:从System.Windows.Forms.Form派生的窗体类,其中定义了共有实例方法ShowText。
Form2 f = (Form2)System.Windows.Forms.Form.FromHandle(CurHwnd);
f.ShowText("Find Form2.");
break;
}
CurHwnd = GetWindow(CurHwnd, GW_HWNDNEXT);
} while(true);
}