功能说明:
Form1是MDI窗体,窗体属性有个ismdicontainer,选择true可以设置。treeview位于panel1位置,点击相应的节
点,对应的窗体就会显示在panel2。比如其中一个节点QueryMems,第一次点击,相应的窗体QueryMems就会显
示在panel2。这个时候点击节点LDD_Generator,对应的窗体LDD_Generator就会显示在panel2。如果再点击
节点QueryMems,程序不会创建新的窗体,会把之前创建的QueryMems窗体拿出来显示在LDD_Generator窗体
上面。再点击节点LDD_Generator,同样道理不会创建新窗体,只会把之前存在的窗体显示在上面。
主要代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//判断节点是不是第一次点击
private bool checkequal(string src)
{
for (int j = 0; splitContainer1.Panel2.Controls.Count>0 && j <splitContainer1.Panel2.Controls.Count; j++ )
{
if (splitContainer1.Panel2.Controls[j].Text==src)
{
//如果存在,只把窗体拿到最上面显示
splitContainer1.Panel2.Controls[j].BringToFront();
return true;
}
else
{
if(j==splitContainer1.Panel2.Controls.Count)
return false;
}
}
return false;
}
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
if (checkequal(treeView1.SelectedNode.Name))
{
}
else
{
if (treeView1.SelectedNode.Name == "QueryMems" )
{
QueryMems qrymems = new QueryMems();
qrymems.TopLevel = false;
qrymems.Text= "QueryMems";
qrymems.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
qrymems.WindowState = FormWindowState.Maximized;
splitContainer1.Panel2.Controls.Add(qrymems);
qrymems.Show();
}
if (treeView1.SelectedNode.Name == "LDD_Generator")
{
LDD_Generator ldd = new LDD_Generator();
ldd.TopLevel = false;
ldd.Text= "LDD_Generator";
ldd.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
ldd.WindowState = FormWindowState.Maximized;
splitContainer1.Panel2.Controls.Add(ldd);
ldd.Show();
}
}
}
}
}