存为htm文件看看
<style>
<!--
.ptr{color:red;cursor:hand;font-family:webdings}
-->
</style>
<script>
function showandshade()
{
if(span1.innerText==3)
{
span1.innerText=4
document.all("td1").style.display="none"
}
else
{
span1.innerText=3
document.all("td1").style.display=""
}
}
</script>
<body leftMargin="0" topMargin="0" scroll=no>
<table width="100%" height="100%" border=0 cellSpacing="0" cellPadding="0">
<tr height="100%">
<td id="td1" width="50" height="100%" style="display:none"><iframe src=left.htm frameborder=0 scrolling=no width="70"></iframe></td>
<td bgColor=#a4b6d7 onclick="showandshade()" style="font-size:7pt;width:5pt;cursor:default;color=:#ffffff"><span id="span1" class="ptr">4</span><font size="1px" color=green><br/>点<br/>击<br/>展<br/>开</font></td>
<td><iframe name="main" src=right.htm frameborder=0 scrolling=yes height="100%" width="100%"></frame></td>
</tr>
</table>
</body>
<SCRIPT>
if(window.screen.width<'1024'){showandshade()}
</SCRIPT>

解决方案 »

  1.   

    查看源就行了 
    http://community.csdn.net/expert/deeptree/rooms/list.xml
      

  2.   

    那只是个xml,我是想看看他是怎么用的,是不是用treeview,因为我不知道怎么用treeview的,所以想借鉴一下。
    最近看一些文章,结果做出来的TreeMenu不会展开也不能收拢,平铺成一行,也不知道在做个什么东西,烦死了!
      

  3.   

    //我有一个讲 TreeView 的,你看看有没有用
    TreeView组件虽然是一个操作起来比较麻烦的组件,但归根到底,可以总结为三种基本操作:加入子节点、加入兄弟节点和删除节点。掌握了这三种常用操作,对于在编程中灵活运用TreeView组件是十分必要的。下面就分别来加以介绍。  (1).加入子节点:  所谓子节点,就是处于选定节点的下一级节点。加入子节点的具体过程是:首先要在TreeView组件中定位要加入的子节点的位置,然后创建一个节点对象,然后利用TreeVeiw类中对节点的加入方法(即:Add ( )方法),加入此节点对象。下面就是在treeView1组件中加入一个子节点的具体代码:
    //首先判断是否选定组件中的位置
    if ( treeView1.SelectedNode == null )
    {
    MessageBox.Show ( "请选择一个节点" , "提示信息" , MessageBoxButtons.OK , MessageBoxIcon.Information ) ;
    }
    else
    {
    //创建一个节点对象,并初始化
    TreeNode tmp ;
    tmp = new TreeNode ( "节点名称" ) ;
    //在TreeView组件中加入子节点
    treeView1.SelectedNode.Nodes.Add ( tmp ) ;
    treeView1.SelectedNode = tmp ;
    treeView1.ExpandAll ( ) ;
    }  (2).加入兄弟节点:  所谓兄弟节点,就是在选定的节点的平级的节点。加入兄弟节点的方法和加入子节点的方法基本一致,只是在最后的实现方法上有着略微的区别。加入兄弟节点的具体步骤,首先也是要确定要加入的兄弟节点所处的位置,接着定义一个节点对象,最后调用TreeView类中对兄弟节点加入的方法,加入此节点对象。加入兄弟节点和加入子节点的最大区别就在于这最后一步。希望读者能够注意。下面是在TreeView组件加入一个兄弟节点的具体代码:
    //首先判断是否选定组件中节点的位置
    if ( treeView1.SelectedNode == null )
    {
    MessageBox.Show ( "请选择一个节点" , "提示信息" , MessageBoxButtons.OK , MessageBoxIcon.Information ) ;
    }
    else
    {
    //创建一个节点对象,并初始化
    TreeNode tmp ;
    tmp = new TreeNode ( textBox1.Text ) ;
    //在TreeView组件中加入兄弟节点
    treeView1.SelectedNode.Parent.Nodes.Add ( tmp ) ;
    treeView1.ExpandAll ( ) ;
    }  (3).删除节点:  删除节点就是删除TreeView组件中选定的节点,删除节点可以是子节点,也可以是兄弟节点,但无论节点的性质如何,必须保证要删除的节点没有下一级节点,否则必须先删除此节点中的所有下一级节点,然后再删除此节点。删除节点比起上面的二个操作要显得略微简单,具体方法是:首先判断要删除的节点是否存在下一级节点,如果不存在,就调用TreeView类中的Remove ( )方法,就可以删除节点了。下面是删除TreeView组件中节点的具体代码:
    //判断选定的节点是否存在下一级节点
    if ( treeView1.SelectedNode.Nodes.Count == 0 )
    //删除节点
    treeView1.SelectedNode.Remove ( ) ;
    else
    MessageBox.Show ( "请先删除此节点中的子节点!" , "提示信息" , MessageBoxButtons.OK , MessageBoxIcon.Information ) ;  (4).TreeView组件的一些其他常用操作:  其他的一些常用操作比起上面的三种操作,在具体实现上要显得简单许多。这些常用操作无非是,展开所有节点,展开指定的节点、和折叠所有节点。下面就来具体介绍一下:  < I > .展开所有节点:  要展开TreeView组件中的所有节点,首先就要把选定的节点指针定位在TreeView组件的根节点上,然后调用选定组件的ExpandAll方法就可以了,下面是具体代码://定位根节点
    treeView1.SelectedNode = treeView1.Nodes [ 0 ] ;
    //展开组件中的所有节点
    treeView1.SelectedNode.ExpandAll ( ) ;  < II > .展开选定节点的下一级节点:  由于只是展开下一级节点,所以就没有必要用ExpandAll ( )方法了。展开下一级节点只需要调用Expand ( )方法就可以了,下面是具体的实现代码:treeView1.SelectedNode.Expand ( ) ;  < III > .折叠所有节点:  折叠所有节点和展开所有节点是一组互操作,具体实现的思路也大致相同,折叠所有节点也是首先要把选定的节点指针定位在根节点上,然后调用选定组件的Collapse ( )就可以了,下面是具体的实现代码:
    //定位根节点
    treeView1.SelectedNode = treeView1.Nodes [ 0 ] ;
    //折叠组件中所有节点
    treeView1.SelectedNode.Collapse ( ) ;  至此已经把在C#操作TreeView组件的常用方法和一般方法基本都介绍完了。
     三. C#编写的一个完整操作TreeView组件的例子:  下面是C#编写一个的关于TreeView组件的例子,在这个例子中,结合以上介绍的常用方法和一般方法,基本覆盖来TreeView组件的一些最常用的操作。譬如可以灵活的程序中的TreeView组件中,进行加入子节点、兄弟节点、删除节点、折叠、展开等操作。其中前三种基本操作是通过程序中弹出菜单中的功能来实现的,后面操作是通过程序中的按钮来实现的。下面是此程序的代码节略(TreeView.cs):
    using System ;
    using System.Drawing ;
    using System.Collections ;
    using System.ComponentModel ;
    using System.Windows.Forms ;
    using System.Data ;
    namespace 全面掌握TreeView组件的使用方法
    {
    /// Form1 的摘要说明。
    public class Form1 : Form
    {
    private TreeView treeView1 ;
    private Button button1 ;
    private Button button2 ;
    private Button button3 ;
    private MenuItem menuItem2 ;
    private MenuItem menuItem3 ;
    private MenuItem menuItem4 ;
    private ContextMenu contextMenu1 ;
    private TextBox textBox1 ;
    private Label label1 ;
    /// 必需的设计器变量。
    private System.ComponentModel.Container components = null ;
    public Form1 ( )
    {
    //初始化窗体中的组件
    InitializeComponent ( ) ;
    }
    /// 清理所有正在使用的资源。
    protected override void Dispose ( bool disposing )
    {
    if ( disposing )
    {
    if ( components != null ) 
    {
    components.Dispose ( ) ;
    }
    }
    base.Dispose ( disposing ) ;
    }
    private void InitializeComponent ( )
    {
      //初始化代码(略) 
    }
    [ STAThread ]
    static void Main ( ) 
    {
    Application.Run ( new Form1 ( ) ) ;
    }
    private void AddChildNode ( )
    {
    //首先判断是否选定组件中的位置
    if ( treeView1.SelectedNode == null )
    {
    MessageBox.Show ( "请选择一个节点" , "提示信息" , MessageBoxButtons.OK , MessageBoxIcon.Information ) ;
    }
    else
    {
    if ( textBox1.Text != "" )
    {
    //创建一个节点对象,并初始化
    TreeNode tmp ;
    tmp = new TreeNode ( textBox1.Text ) ;
    //在TreeView组件中加入子节点
    treeView1.SelectedNode.Nodes.Add ( tmp ) ;
    treeView1.SelectedNode = tmp ;
    treeView1.ExpandAll ( ) ;
    }
    else
    {
    MessageBox.Show ( "TextBox组件必须填入节点名称!" , "提示信息" , MessageBoxButtons.OK , MessageBoxIcon.Information ) ;
    return ;
    }
    }
    }
    private void AddParent ( )
    {
    //首先判断是否选定组件中节点的位置
    if ( treeView1.SelectedNode == null )
    {
    MessageBox.Show ( "请选择一个节点" , "提示信息" , MessageBoxButtons.OK , MessageBoxIcon.Information ) ;
    }
    else
    {
    if ( textBox1.Text != "" )
    {
    //创建一个节点对象,并初始化
    TreeNode tmp ;
    tmp = new TreeNode ( textBox1.Text ) ;
    //在TreeView组件中加入兄弟节点
    treeView1.SelectedNode.Parent.Nodes.Add ( tmp ) ;
    treeView1.ExpandAll ( ) ;
    }
    else
    {
    MessageBox.Show ( "TextBox组件必须填入节点名称!" , "提示信息" , MessageBoxButtons.OK , MessageBoxIcon.Information ) ;
    return ;
    }
    }
    TreeNode tnode = new TreeNode ( textBox1.Text ) ;
    }
    private void treeView1_MouseDown ( object sender , MouseEventArgs e )
    {
    if ( e.Button == MouseButtons.Right )
    contextMenu1.Show ( this , new Point ( e.X , e.Y ) ) ;
    }
    private void button1_Click ( object sender , System.EventArgs e )
    {
    treeView1.SelectedNode.Expand ( ) ;
    }
    private void menuItem2_Click ( object sender , System.EventArgs e )
    {
    AddChildNode ( ) ;
    }
    private void menuItem3_Click ( object sender , System.EventArgs e )
    {
    AddParent ( ) ;
    }
    private void menuItem4_Click ( object sender , System.EventArgs e )
    {
    //判断选定的节点是否存在下一级节点
    if ( treeView1.SelectedNode.Nodes.Count == 0 )
    //删除节点
    treeView1.SelectedNode.Remove ( ) ;
    else
    MessageBox.Show ( "请先删除此节点中的子节点!" , "提示信息" , MessageBoxButtons.OK , MessageBoxIcon.Information ) ;
    }
    private void button2_Click ( object sender , System.EventArgs e )
    {
    //定位根节点
    treeView1.SelectedNode = treeView1.Nodes [ 0 ] ;
    //展开组件中的所有节点
    treeView1.SelectedNode.ExpandAll ( ) ;
    }
    private void button3_Click ( object sender , System.EventArgs e )
    {
    //定位根节点
    treeView1.SelectedNode = treeView1.Nodes [ 0 ] ;
    //折叠组件中所有节点
    treeView1.SelectedNode.Collapse ( ) ;
    }
    }
    }