当前位置:编程学习 > C#/ASP.NET >>

C# tabcontrol的tabpage转换

内容:在C#Form1的左边加一个treeview控件。在其中填入节点1和节点2.他们的Text分别叫:主机1、主机2.然后再在Form1的右边拉一个tabcontrol控件。他的里边当然自动生成tabpage1和tabpage2.再填一个空的tabpage3.

要求:当执行的时候,显示空的tabpage3。点主机1,tabpage1显示,tabpage2隐藏。点主机2,tabpage2显示,tabpage1隐藏。

请给我比较详细的代码以及点谁的什么事件实现。(麻烦先在你自己的机子上实现一下) --------------------编程问答-------------------- 顶 --------------------编程问答--------------------

private void Form3_Load(object sender, EventArgs e)
        {
            tabControl1.SelectedTab = tabPage3;
        }
        private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
        {
            if(e.Node.Text.Equals("主机1"))
            {
                tabControl1.SelectedTab = tabPage1;
            }
            if (e.Node.Text.Equals("主机2"))
            {
                tabControl1.SelectedTab = tabPage2;
            }
        }
--------------------编程问答-------------------- 楼上的方法是正确的,但楼主可能不是这个意思,我想他是希望执行的时候,只显示tabpage3,不显示tabpage1和tabpage2,只有在treeView1的NodeMouseClick事件的时候,不显示tabpage3,而显示相应的tabpage1和tabpage2,但tabpage可没有Visible这个属性。所以楼主不妨换个思维方式,如就只有一个tabpage,里面可以放入三个groupBox,里面分别填充相应的控件,然后根据treeView的事件,设置相应的groupBox的Visible属性。
我不知道我说的,是不是楼主的意思。。。! --------------------编程问答-------------------- 其实易做图是这样的。。
tabpage 没有Visible 这个属性
但是有 Hide() 这个方法
可以我试过了 没有起作用

那只能出杀手锏啦

首先 设置‘主机1’节点的tag 为0
设置‘主机2’节点的tag 为1

 private void Form1_Load(object sender, EventArgs e)
        {
            

            tabPage1.Parent = null;
            tabPage2.Parent = null;

        }
初始化的时候,只要设置tabPage的父窗体为空对象 这样就相当于隐藏了tabPage
但是并没有删除tabPage,删除跟不显示不是一个概念

之后写树控件的 节点点击事件

 private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
        {
            //获取点击的节点
            TreeNode node = e.Node;

            //获取Tag
            int index = Convert.ToInt32(node.Tag);

            //先把tabControl1的所有tabPage 都不显示
            foreach(TabPage tabPage in tabControl1.TabPages )
            {
                tabPage.Parent = null;
            }

            //根据点击的节点 来显示分页
            switch (index)
            {
                case 0:
                    tabPage1.Parent = tabControl1;
                    break;
                case 1:
                    tabPage2.Parent = tabControl1;
                    break;
            }
            
        } --------------------编程问答-------------------- lz长得够易做图.
连帖子都不知道结,
还做什么生产指挥调度?! --------------------编程问答--------------------
引用 5 楼 qshzf 的回复:
lz长得够易做图.
连帖子都不知道结,
还做什么生产指挥调度?!


哈哈 --------------------编程问答-------------------- 既然TabControl里面只显示一个, 干嘛要用TabControl呢, 你直接把三个窗口都放右边, 然后通过控制他们的影藏和显示来实现啊. --------------------编程问答-------------------- 牛逼
引用 5 楼 qshzf 的回复:
lz长得够易做图.
连帖子都不知道结,
还做什么生产指挥调度?!
补充:.NET技术 ,  其他语言
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,