Winform- TreeView的使用例子】的更多相关文章

最近在写个测试demo的时候使用到WinForm TreeView,已经好久没接触了,有些生疏,所以还是记录一下遇到的一些问题. 1.如果动态绑定TreeView,这个功能一般会在数据量不确定,需要去数据库或者其他途径获得数据,动态加载数据的时候使用. 下面我们看一下怎么实现动态版定,首先准备好数据,我这里就模拟一下,定义两个数组 //定义值 string[] strs = { "香蕉", "苹果", "桃子", "草莓" }…
下面是treeview的用法TreeView组件是由多个类来定义的,TreeView组件是由命名空间"System.Windows .Forms"中的"TreeView"类来定义的,而其中的节点(即Node),是由命名空间"System.Windows .Forms"中的"TreeNode"来定义的.所以当在程序中创建一个TreeView对象,其实只是创建了一个可以放置节点的"容器".而在这个容器中加入一个…
转载:http://www.jetwu.cn/archives/737 winform treeView 数据绑定 private void Form1_Load(object sender, EventArgs e) { Types = new List<UrlTypes>() { , Name = }, , Name = }, , Name = }, , Name = }, , Name = }, , Name = }, , Name = } }; var topNode = new Tr…
在文本框中输入一个数字,点击开始累加按钮,程序计算从1开始累计到该数字的结果.因为该累加过程比较耗时,如果直接在UI线程中进行,那么当前窗口将出现假死.为了有更好的用户体验,程序启动一个新的线程来单独执行该计算,然后每隔200毫秒读取一次累加结果,并把结果显示到文本框下方的label控件中.同时,程序支持取消操作,点击取消累计按钮,程序将取消累加操作,并把当前累加值显示到label中.为了方便后面的描述,我把UI线程称作主线程,把执行累加计算的线程称作工作者线程.该过程有两个关键点: 1:如何在…
转载:http://www.cnblogs.com/Ruiky/archive/2013/02/01/2888674.html public static class TreeViewHelper { private static IEnumerable<TreeNode> childNodes(this TreeNode node) { return node.Nodes.Cast<TreeNode>() .SelectMany(x => x.selfAndChildNod…
在开发的时候经常使用treeview控件来显示组织结构啊,目录结构啊,通常会结合属性checkedboxs,来做选中,取消的操作下面是一个选中,取消的小例子,选中节点的时候,如果节点存在子节点,可以选中全部的子节点:如果取消一个节点的选中状态,当前节点同时又存在父节点的话,就取消父节点的选中状态. private void trvPost_AfterCheck(object sender, TreeViewEventArgs e) { //通过鼠标或者键盘触发事件,防止修改节点的Checked状…
做角色菜单权限时用到treeview控件做树状显示菜单,简单总结了一下用法: 1.在winform窗体中拖入treeview控件,注意修改属性CheckBoxes属性为true,即在节点旁显示复选框 2.后台动态加载数据库数据绑定到treeview上,子节点使用递归添加 代码如下: //循环添加treeview节点 ; i < dm.Rows.Count - ; i++)//dm是数据库查出的数据表 { //添加父节点(一级菜单) ) { TreeNode pnode = new TreeNod…
今天,主要弄了一下对于树型控件的一些方法,以及异步加载.参考: http://www.cnblogs.com/greatverve/archive/2012/03/23/winform-treeview.html 下面是TreeView的一些用法 private void BindTreeView() { treeView1.LabelEdit = false;//不可编辑 //添加结点 TreeNode root = new TreeNode(); root.Text = "根节点"…
public static class TreeViewCheck { /// <summary> /// 系列节点 Checked 属性控制 /// </summary> /// <param name="e"></param> public static void CheckControl(TreeViewEventArgs e) { if (e.Action != TreeViewAction.Unknown) { if (e.No…
在程序开发过程中我们经常用到treeview,还经常要修改节点的名字.节点名字修改后还想及时更新数据库.这时问题就来了,怎样获取NODE(节点)更新后的值呢?本人试了很多方法最终分析出treeview节点名字修改的AfterLabelEdit事件.事件内有两个参数如下代码 sender 和 e. private void treeView2_AfterLabelEdit(object sender, NodeLabelEditEventArgs e) { } 代码内的e 有两个值,e.Lable…
在平常开发中,treeview的节点显示checkbox,若节点存在几级时,往往希望,选中父节点后,其子节点都要选中,如何实现勒,请看 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace SmartHo…
private void treeView_ItemDrag(object sender, ItemDragEventArgs e) { TreeNode dragNode = e.Item as TreeNode; DoDragDrop(dragNode, DragDropEffects.Move); } private void treeView_DragEnter(object sender, DragEventArgs e) { e.Effect = e.AllowedEffect; }…
当用户焦点离开TreeView时,TreeView选中节点仍然高亮,但是颜色符合主题. 设置TreeView.HideSelection = False;可让选中节点保持高亮. 添加重绘事件 TreeView.DrawMode = TreeViewDrawMode.OwnerDrawText; TreeView.DrawNode += new DrawTreeNodeEventHandler(TreeView_DrawNode); // Draws a node. private void Tr…
/// <summary> /// 添加人员节点(利用TreeNodeCollection) /// </summary> /// <param name="tnc">TreeNodeCollection(TreeView的节点集合)</param> /// <param name="pid_val">父id的值</param> /// <param name="id"…
XmL文件代码: <?xml version="1.0" encoding="utf-8" ?> <Area> <Province iAreaID=" cAreaName="北京市"/> <Province iAreaID=" cAreaName="上海市"/> <Province iAreaID=" cAreaName="天津市&q…
TreeNode类型是有Expand和ExpandAll这两个方法.而Treeview是只有ExpandAll的,想要展开根目录下面的节点的话 //只展开根目录 ) ].Expand();…
http://www.cnblogs.com/kingangWang/archive/2011/08/15/2139119.html public static class TreeViewCheck { /// <summary> /// 系列节点 Checked 属性控制 /// </summary> /// <param name="e"></param> public static void CheckControl(TreeVi…
最近项目里用到treeview,原先设计的是一开始就把所有数据都加载到treeview里,后来发现客户的数据量实在太大,加载所有数据要2分钟,这个是客户没法接受的.后来就考虑到用户也不是一开始就要看所有的数据,用户也是一层一层地展开,所以我们就考虑是不是可以实现以当用户展开某个结点时才加载当前结点下面的数据.一番查找后,发现treeview有BeforeExpand事件可以实现我们的需求. 下面介绍具体的实现代码: 1. 首先只加载各部门(结点)的信息   1: List<string> m_…
1.如图实现整数计算器 ComboBox控件: Items属性:添加集合中的项. this.comoper.Items.AddRange(new object[] { "+", "-", "x", "/"}); TextBox: 对TextBox的输入文本有限制: 1)只能输入数值型(整数和小数): 2)小数点不能开头,小数只能输入一位: 3)不满足要求的输入统一不接受. 实现方法 使用TextBox的KeyPress事件:在…
form1 public void treeView() { // datatable 定义变量接收 传归来的值 DataTable Father = new BuMenDA().ConSql(); //查询出来的的结果不可能为空 for循环一条条查出来 ; a <= Father.Rows.Count; a++) {// 定义新的节点接a行的 Name列 TreeNode fatherNode = new TreeNode(Father.Rows[a]["Name"].ToSt…
转载:http://www.cnblogs.com/zhbsh/archive/2011/05/26/2057733.html #region treeview 绑定文件夹和文件 /// <summary> /// 根据文件夹绑定到树 /// </summary> /// <param name="treeview"></param> /// <param name="FilePath"></para…
/// <summary> /// MouseDown是鼠标按下事件发生在你鼠标单击事件之前,你单击鼠标发生了两个动作,一是鼠标按下二是鼠标抬起.执行之后,就会把SelectedNode转变成你鼠标点的那个节点了 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void Tv…
这个其实通俗一点讲就是的树状分支图 首先利用递归添加数据 数据放入 treeView1.Nodes.Add() 中 public Form3() { InitializeComponent(); TreeNode t1 = new TreeNode("中国"); TreeNode t2 = new TreeNode("北京"); TreeNode t3 = new TreeNode("朝阳区"); t2.Nodes.Add(t3); t1.Nod…
private void treeView2_AfterCheck(object sender, TreeViewEventArgs e)        {            if (e.Action != TreeViewAction.Unknown)            {                CheckAllChildNodes(e.Node, e.Node.Checked);                //选中父节点                 bool bol…
private void treeView1_AfterCheck(object sender, TreeViewEventArgs e) { //通过鼠标或者键盘触发事件,防止修改节点的Checked状态时候再次进入 if (e.Action == TreeViewAction.ByMouse || e.Action == TreeViewAction.ByKeyboard) { if (e.Node.Checked) { foreach (TreeNode node in treeView1…
private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) { var node = e.Node; if (node == null) return; //根据父节点状态,全选或全消子节点 node.StateImageIndex = node.StateImageIndex == ? : ; UpdateSubNodeCheckStatus(node); //确定子节点的父节点是否被选…
  一.排序 1. 继承 IComparer 2.  treeView1.TreeViewNodeSorter = this; 3. 实现IComparer public int Compare(object x, object y)         {             TreeNode n1 = x as TreeNode;             TreeNode n2 = y as TreeNode;             if (n1 == null || n2 == null…
public partial class Form1 : Form { public Form1() { InitializeComponent(); } string tag = "True"; StringBuilder nodesTag; /// <summary> /// 全选 /// </summary> /// <param name="treeNode"></param> /// <param na…
/// <summary> /// 上移 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void tsbMoveUp_Click(object sender, EventArgs e) { if (Tv_tree.SelectedNode == null) { Messa…
//设置标志,防止死循环 bool check = false; public void TV_AfterCheck(object sender, TreeViewEventArgs e) { if (check == false) setchild(e.Node); setparent(e.Node); check = false; } //设置子节点状态 private void setchild(TreeNode node) { foreach (TreeNode child in nod…