C#左边是treeview 右边panel中是tabcontrol 点击treeView 中的一个节点时,右边tabcontrol 显示不同内容 50
2个回答
展开全部
// 创建全局变量
List<string> a = new List<string>();
TabPage tp = null;
Dictionary<string, TabPage> Dtp = new Dictionary<string, TabPage>();
//在treeview的AfterSelect事件中添加如下代码
TreeNode tn = tvwWms.SelectedNode;
if (tn.Parent == null) //判断是否是根节点
{
}
else
{
bool b = false;
string n = tvwWms.SelectedNode.Text.ToString();
if (e.Action == TreeViewAction.ByMouse)
{
for (int i = 0; i < a.Count; i++)
{
if (a[i] == n) //判断是否是已有的字符串
{
b = true;
break;
}
}
a.Add(n); //往数组中添加节点的Name
if (b == true) //判断是否是已创建过的选项卡
{
if (!tcWms.TabPages.ContainsKey(n)) //判断tabPage集合中是否含有该关键字的tabPage
{
try
{
if(Dtp.ContainsKey(n))
{
tcWms.TabPages.Add(Dtp[n]);
Dtp.Remove(n);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
else
{
//添加不存在的选项卡
TabPage tab = new TabPage();
tcWms.TabPages.Add(tab);
tab.Name = n;
tab.Text = n;
tcWms.Multiline = true;
tcWms.SelectedTab = tab; //显示该选项卡
string str = tvwWms.SelectedNode.Tag.ToString();
for (int i = 0; i < tcWms.TabPages.Count; i++) //往每个tabPage添加一个panel
{
Panel p = new Panel();
p.Name = "Panel" + i.ToString();
p.Size = new System.Drawing.Size(711, 415);
tcWms.TabPages[i].Controls.Add(p);
if (str == "11") //点击某个节点,显示对应窗体
{
frmPc f = new frmPc();
f.TopLevel = false;
f.FormBorderStyle = FormBorderStyle.None;
f.WindowState = FormWindowState.Maximized;
p.Controls.Add(f);
f.Show();
}
if (str == "12")
{
frmGr f1 = new frmGr();
f1.TopLevel = false;
f1.FormBorderStyle = FormBorderStyle.None;
//f1.WindowState = FormWindowState.Maximized;
p.Controls.Add(f1);
f1.Show();
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询