精华内容
下载资源
问答
  • c#treeview选中节点

    千次阅读 2016-06-15 17:14:32
    按钮监听事件,调用。 private void button2_Click(object sender, EventArgs e) { foreach (TreeNode n in TreeView1.Nodes) { ErgodicTreeView(...
     
    
     

    按钮监听事件,调用。 

    private void button2_Click(object sender, EventArgs e)
            {            
    
                foreach (TreeNode n in TreeView1.Nodes)
                {
                    ErgodicTreeView(n);
                }
            }

     查找到当前节点是否有需要的节点,如果有,然后遍历父节点,将父节点全部展开,找到后选中添加背景颜色区分。

    void ErgodicTreeView(TreeNode tn)
            {
                if (tn == null) return;
                //查找到某节点时
                if (tn.Text.Equals("英山县"))
                {
                    //遍历递归获取父节点,将父节点全部展开
                    prenode(tn);
                    //选中某节点,并加背景颜色
                    TreeView1.SelectedNode = tn;
                    TreeView1.SelectedNode.BackColor = System.Drawing.Color.Red;
                }
                foreach (TreeNode n in tn.Nodes)
                {
                    ErgodicTreeView(n);
                }
            }
            void prenode(TreeNode m)
            {
               
    
                if (m.Parent.Text != null)
                {
                    m.Parent.Expand();
                    //当为项级节点时
                    if (m.Parent.Level == 0)
                    {
                        m.Parent.Expand();
                    }
                     //不是项级节点时
                    else
                    {
                        prenode(m.Parent);
                    }
    
                }
               
            }

     

    展开全文
  • 在一个项目中用到了TreeView,但是每次刷新TreeView的数据之后,所有的节点都会折叠起来 ...//先保存当前选中节点的key LastSelectNode = treeView1.SelectedNode.Name; //刷新数据 TreeView_Load_(); ...

    在一个项目中用到了TreeView,但是每次刷新TreeView的数据之后,所有的节点都会折叠起来

    非常影响用户体验,使用下面的方法可以解决这个问题

    string LastSelectNode = "";
    //先保存当前选中的节点的key
    LastSelectNode = treeView1.SelectedNode.Name;
    //刷新数据
    TreeView_Load_();
    //查找节点并重新选中
    SearchNodes(LastSelectNode, treeView1.Nodes[0]);

     

     

            #region TreeView查找并选中节点
            private void SearchNodes(string SearchText, TreeNode StartNode)
            {
                while (StartNode != null)
                {
                    if (StartNode.Name.ToLower().Contains(SearchText.ToLower()))
                    {
                      //  CurrentNodeMatches.Add(StartNode);
                        treeView_AfterSelect_bit = false;
                        treeView1.SelectedNode = StartNode;
                        treeView1.SelectedNode.Expand();
                        treeView1.Select();
                        treeView_AfterSelect_bit = true;
                    }
    
                    if (StartNode.Nodes.Count != 0)
                    {
                        SearchNodes(SearchText, StartNode.Nodes[0]);//递归搜索
                    }
                    StartNode = StartNode.NextNode;
                }
            }
            #endregion

     

    转载于:https://www.cnblogs.com/huanjun/p/10824984.html

    展开全文
  • 这里假定只有两级节点,多级方法类似。遍历节点,根据选中节点文本找到要选中的节点。.../// 设置TreeView选中节点 /// </summary> /// <param name="treeView"></param> /// ...

    这里假定只有两级节点,多级方法类似。
    遍历节点,根据选中节点文本找到要选中的节点。
    treeView.SelectedNode = selectNode;

    /// <summary>
    /// 设置TreeView选中节点
    /// </summary>
    /// <param name="treeView"></param>
    /// <param name="selectStr">选中节点文本</param>
    private void SelectTreeView(TreeView treeView, string selectStr)
    {
        treeView.Focus();
        for (int i = 0; i < treeView.Nodes.Count; i++)
        {
            for (int j = 0; j < treeView.Nodes[i].Nodes.Count; j++)
            {
                if (treeView.Nodes[i].Nodes[j].Text == selectStr)
                {
                    treeView1.SelectedNode = treeView.Nodes[i].Nodes[j];//选中
                    //treeView.Nodes[i].Nodes[j].Checked = true;
                    treeView.Nodes[i].Expand();//展开父级
                    return;
                }
            }
        }
    }

    转:http://greatverve.cnblogs.com/archive/2012/02/07/treeview-selectednode.html

    转载于:https://www.cnblogs.com/jun-jie/p/3570363.html

    展开全文
  • 当用户焦点离开TreeView时,TreeView选中节点仍然高亮,但是颜色太浅,几乎看不出来。 这里重写一下DrawMode();可以控制选中节点颜色。 TreeView.HideSelection = False;可让选中节点保持高亮。 参考:...
    当用户焦点离开TreeView时,TreeView选中节点仍然高亮,但是颜色太浅,几乎看不出来。
    这里重写一下DrawMode();可以控制选中节点颜色。
    TreeView.HideSelection = false;可让选中节点保持高亮。

    参考:http://msdn.microsoft.com/zh-cn/library/system.windows.forms.treeview.hideselection(VS.80).aspx


    public FrmMain()
    {
        InitializeComponent();
        treeView1.HideSelection = False;
        //自已绘制
        this.treeView1.DrawMode = TreeViewDrawMode.OwnerDrawText;
        this.treeView1.DrawNode += new DrawTreeNodeEventHandler(treeView1_DrawNode);
    }
    
    //在绘制节点事件中,按自已想的绘制
    private void treeView1_DrawNode(object sender, DrawTreeNodeEventArgs e)
    {
        e.DrawDefault = true; //我这里用默认颜色即可,只需要在TreeView失去焦点时选中节点仍然突显
        return;
    
        if ((e.State & TreeNodeStates.Selected) != 0)
        {
            //演示为绿底白字
            e.Graphics.FillRectangle(Brushes.DarkBlue, e.Node.Bounds);
    
            Font nodeFont = e.Node.NodeFont;
            if (nodeFont == null) nodeFont = ((TreeView)sender).Font;
            e.Graphics.DrawString(e.Node.Text, nodeFont, Brushes.White,Rectangle.Inflate(e.Bounds, 2, 0));
        }
        else
        {
            e.DrawDefault = true;
        }
    
        if ((e.State & TreeNodeStates.Focused) != 0)
        {
            using (Pen focusPen = new Pen(Color.Black))
            {
                focusPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dot;
                Rectangle focusBounds = e.Node.Bounds;
                focusBounds.Size = new Size(focusBounds.Width - 1,
                focusBounds.Height - 1);
                e.Graphics.DrawRectangle(focusPen, focusBounds);
            }
        }
    
    }


    展开全文
  • TreeView启用checkboxes 方式的时候,当父节点选中的时候,它所有的子节点一起被选中;当父节点取消选择的时候,它所有的子节点也取消选择。 实现起来,非常简单,代码如下: /// <summary>/// 假设...
  • C# 获取TreeView选中节点的value和Text

    万次阅读 2013-03-20 16:57:33
    for (int i = 0; i  {  tvdataid += "," + this.TreeView1.CheckedNodes[i].Value;  tvdataname += "," + this.TreeView1.CheckedNodes[i].Text;
  • private bool treeCheckUpdating = false; private void treeViewControlCells_AfterCheck(object sender, TreeViewEventArgs e) { if (treeCheckUpdating == true) {
  • treeview选中节点的名字是个字符串如:图书(XXXXXXXXX) 我自己拼接的了一个字符串str,想替换括号中的内容XXXXXX。请问如何编写?
  • 我就是在treeview中但一个节点,然后把它对应在数据库中的内容显示在一个listview中。但是结果listview一直显示第一个节点的内容,单击之后没有反应。 求大神解救啊,小弟最近刚刚自学C#,很多东西还不太...
  • C#TreeView节点选中后失去焦点时改变节点背景色 在使用TreeView控件时候,单击一个节点,当鼠标聚焦到别的地方的时候,之前点击的这个节点就看不清楚了 举例截图 单击后 聚焦离开后 问题解决...
  • C#Winfrom怎么获取treeview选中节点的tag,我现在获取到的总是其父级的tag,求教!
  • 当用户焦点离开TreeView时,TreeView选中节点仍然高亮,但是颜色太浅,几乎看不出来。 这里重写一下DrawMode();可以控制选中节点颜色。 TreeView.HideSelection = False;可让选中节点保持高亮。 ...
  • TreeView启用checkboxes 方式的时候,当父节点选中的时候,它所有的子节点一起被选中;当父节点取消选择的时候,它所有的子节点也取消选择。 实现起来,非常简单,代码如下: /// <summary> /// 假设...
  • 效果图如下: 当TreeView启用checkboxes 方式的时候,当父节点选中的时候,它所有的子节点一起被选中;当父节点取消选择的时候,它所有的子节点也取消选择。 实现起来,非常简单,代码如下: /// <summary> /...
  • 1、先来看看一个节点位置交换效果:2、节点交换位置具体方法(Move):3、上一篇中遗留了删除节点后会自动选中父类节点而不是选中兄弟节点问题:4、解决上面问题的方式,不过会多次触发:5、解决后的效果:6、最后来个完整的...
  • 需求:TreeView树节点上移下移 实现方案: 1.用到节点的PrevNode属性,获取上一个同级树节点。... /// 选中节点上移方法 /// </summary> /// <param name="node"></param> ...
  • 当我选择一个父节点,希望该父节点下所有的子节点都被选中,取消一个节点,希望他所有的父节点都取消,例如 代码如下所示 //取消节点选中状态之后,取消所有父节点选中状态 private void ...
  • C# treeview复选框选中问题 父节点选中 相应的子节点也被选中节点选中节点全部不选中;子节点全部选中节点也被选中
  • C# treeview默认选中一个节点

    万次阅读 2018-05-30 09:19:28
    而且需要选中节点的上级节点是展开的.在这里公布源代码.并附上效果图.当窗体一加载的时候就默认选中了销售部(一)的节点 .并且节点0默认展开for (int i = 0; i &lt; tv.Nodes.Count; i++) { for (int j = 0; j ...
  • c#Treeview选中节点的图标

    千次阅读 2019-07-13 11:28:41
    我正在使用一个treeview控件在 winforms和一个imagelist来显示树状视图元素的不同状态. 但是当节点被选中时 图像会没掉. 后来经过百度发现. ...会出现BUG 被选中节点 选择后,其它节点会自动收...
  • 主要介绍了C#TreeView实现适合两级节点的选中节点方法,实例分析了C#TreeView节点操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 197
精华内容 78
关键字:

c#treeview选中节点

c# 订阅