zoukankan      html  css  js  c++  java
  • C#中TreeView组件使用例子

    C#中TreeView组件使用方法初步
    2002-08-26· ·马金虎··yesky

    上一页  1 2  


      三. 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 ( ) ;
    }
    }
    }


      在成功编译TreeView.cs后,运行的程序界面如下:


    图01:C#编写的操作TreeView组件的程序运行界面

      四. 总结:

      TreeView组件是一个既令程序员头痛,又令程序员难以割舍的组件。这是因为TreeView组件使用非常灵活,显示内容有层次,并且"容量"相对又比较大。但同时在实际的编程比起其他组件又相对麻烦。掌握了本文介绍的这些用C#操作TreeView组件的基本方法后,我想对于在使用TreeView组件中的一般的问题,应该都能够克服了吧。
  • 相关阅读:
    在返回值拒绝——reference
    传参时,使用引用替换变量
    C++设计与声明——让接口容易被正确使用
    三角函数的天下
    渲染流水线
    设置Shader关键字高亮(网上转)
    平衡二叉树,AVL树之代码篇
    2017-2018-1 20155205 嵌入式C语言——时钟
    GDB基础学习
    20155205 《信息安全系统设计基础》课程总结
  • 原文地址:https://www.cnblogs.com/terrylin/p/439885.html
Copyright © 2011-2022 走看看