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长得够易做图.
连帖子都不知道结,
还做什么生产指挥调度?! --------------------编程问答--------------------
哈哈 --------------------编程问答-------------------- 既然TabControl里面只显示一个, 干嘛要用TabControl呢, 你直接把三个窗口都放右边, 然后通过控制他们的影藏和显示来实现啊. --------------------编程问答-------------------- 牛逼
补充:.NET技术 , 其他语言