你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:文章管理 / 本期精品文章
TreeView控件复杂操作的编程技巧
 

于晓静 管建和

 

  本文通过对TreeView控件的拖拽组合等复杂操作的程序设计,分析了TreeView控件在复杂应用中编程实现的技术难点。

关键词 TreeView控件,TreeNodeC#,拖拽组合

 

一、前言

.NET框架中,TreeView控件可谓功能强大,几乎所有需要显示分级信息的应用程序都能由它实现。通常对于一个较简单的应用程序来说,提供内容的分级显示和一些简单的操作就已经足够满足需求,然而在一些复杂应用中,这种功能上的局限性就将捉襟见肘了。

譬如对于实现的一个树型控件,当用户需要对它进行这样的修改——仅调整树型控件节点的位置而不修改树型结构上节点的值时,最简单快捷的方法就是对节点实施拖拽操作从而实现位置的变更。而通常实现的树型结构无法做到这点,因为它仅仅定义了简单的增删改操作,所以用户只能通过繁琐的反复删除、添加相应节点及其子树来完成需要的修改。当树型结构分支或节点数目较多时,操作费时且易出错。因此,针对类似复杂应用的需求,文章将详细介绍一个TreeView控件拖拽组合等复杂操作实例的实现并分析其技术难点。

二、TreeView常规操作的实现

如应用程序界面图1所示,由于左右两边的树型结构的实现基本一样,因此本文仅以左边的TreeView控件tvwLeft为例来说明的基本增删改操作的编程实现。

1 TreeView弹出式菜单效果图

1.弹出式右键菜单的实现

首先从工具箱中拖出一个ContextMenu控件,然后选择tvwLeft树型控件,在“属性”窗口的“事件”元素下为tvwLeft树型控件编写MouseDown事件的处理方法,代码如下:

private void tvwLeft_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)

{//tvwLeft工作区内单击鼠标右键时,弹出相应操作菜单

     if (e.Button==MouseButtons.Right )

     {    //判断是否是在树节点上单击的鼠标右键

         if(!Object.Equals(((TreeView) sender).GetNodeAt(e.X,e.Y),null))

         {    //获得当前选中的树节点

              ((TreeView) sender).SelectedNode=((TreeView) sender).GetNodeAt(e.X,e.Y);

              if(!Object.Equals(((TreeView) sender).SelectedNode.Parent,null))

  推荐精品文章

·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录
·2023年10月目录
·2023年9月目录 
·2023年8月目录 
·2023年7月目录
·2023年6月目录 
·2023年5月目录

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089