首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

问个treeview与tabControl的有关问题

2012-01-05 
问个treeview与tabControl的问题如图,呃点击右边的treeview内的项点击后,右边的tabcontrol会相应的显示一

问个treeview与tabControl的问题


如图,呃

点击右边的treeview内的项  
点击后,右边的tabcontrol会相应的显示一个tabpage,其他的tabpage则为不可见(tabpage似乎不能隐藏)
tabcontrol 里有30几个tabpage

个人想要的结果:
第一种:tabcontrol内的tabpages可以是全部显示,点击后treeview的node后,右边的tabcontrol会相应的有一个tabpage,tabpage.text=treeview.selectedNode.text,要求该tabpage在第一项显示。

第二种:简单点说就是,点一个node,tabcontrol里面就显示一个tabpage,且只显示一个(tabpage.text=treeview.selectedNode.text),其他的都隐藏。
----------------------------------------------

有方法或提示就行哈,不一定全部要代码,当然有代码更好!


[解决办法]
this.TabControl1.TabPages.Clear();
this.TabControl1.TabPages.Add(this.TabPage2);
[解决办法]
见过这个效果,忘了在那里见过,帮你顶哈.
[解决办法]
在.Net中,可以TabControl控件可以删除的,这样可达到这个隐藏目的。
tabControl1.TabPages.Remove(this.tabPage1);
tabControl1.TabPages.Add(this.tabPage1);

你可把每个模块做成一个Form.把每个TabControl的Tabpages做好,然后要据自己的需求装入每个Tabpage.当然还可以根据用户的权限加载不同的。
希望这些能对你有帮助。

[解决办法]
帮顶...我以前都是用的很多个PANEL来实现..很麻烦...学习..
[解决办法]

C# code
private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e){    this.tabControl1.TabPages.Clear();    if (e.Node.Level == 0)    {        foreach (TreeNode node in this.treeView1.Nodes[0].Nodes)//this.treeView1.Nodes[0]是销售基础数据所在的节点,具体你再调整            this.tabControl1.TabPages.Add(node.Text, node.Text);        return;    }                 this.tabControl1.TabPages.Add(e.Node.Text, e.Node.Text, 0);}
[解决办法]
C# code
TreeNode currNode;//当前节点List<TabPage> list;//保存所有的TabPagesprivate void Form1_Load(object sender, EventArgs e){    //把所有的TabPages放在list中    list = new List<TabPage>();    foreach (TabPage page in this.tabControl1.TabPages)        list.Add(page);}        private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e){    currNode = e.Node;                this.tabControl1.TabPages.Clear();    if (e.Node.Level == 0)//单击父节点,显示全部    {        this.tabControl1.TabPages.AddRange(list.ToArray());        return;    }    //在list中找到对应的TabPage加到TabControl中    TabPage p = list.Find(new Predicate<TabPage>(find));    if(p != null) this.tabControl1.TabPages.Add(p);}bool find(TabPage page){    return page.Text == currNode.Text;}
[解决办法]
当然,list.Find()用委托实现的话更替紧凑写
C# code
TreeNode currNode;List<TabPage> list;private void Form1_Load(object sender, EventArgs e){    list = new List<TabPage>();    foreach (TabPage page in this.tabControl1.TabPages)        list.Add(page);}        private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e){    currNode = e.Node;                this.tabControl1.TabPages.Clear();    if (e.Node.Level == 0)    {        this.tabControl1.TabPages.AddRange(list.ToArray());        return;    }    TabPage p = list.Find(new Predicate<TabPage>(delegate(TabPage pageTem)    {        return pageTem.Text == currNode.Text;    }));    if(p != null) this.tabControl1.TabPages.Add(p);} 

热点排行