如何使用C#和Visual Studio 2013从Treeview控件一次选择多个节点 [英] How Do I Select Multiple Nodes At A Time From Treeview Control Using C# And Visual Studio 2013

查看:398
本文介绍了如何使用C#和Visual Studio 2013从Treeview控件一次选择多个节点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想从树视图中选择多个节点,并希望其文本出现在msgbox或控制台中。但我无法这样做。请有人帮帮我。?



从下面的答案添加

  //  从数据库创建树 
private void CreateTree(TreeNode n, int hdrID)
{
System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection( @ < span class =code-string> Data Source =(LocalDB)\ v11.0; AttachDbFilename = D:\Builder.mdf; MultipleActiveResultSets = True; Integrated Security = True; Connect Timeout = 30) ;
con.Open();
SqlCommand cmd = new SqlCommand( SELECT Id,Title FROM Presentation WHERE Pid = + hdrID,con);
SqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
TreeNode t = new TreeNode(rdr [ Title]。ToString());
CreateTree(t,Convert.ToInt16(rdr [ Id]。ToString() ));
if (n == null
{
treeView1。 Nodes.Add(T);
// t.ImageIndex = 0;
}
< span class =code-keyword> else
{
n.Nodes.Add(t);
}
}
rdr.Close();
}

解决方案

如果您不希望每个项目旁边都有复选框,这可能对您有用。 br $> b $ b

http://www.codeproject.com/Articles/8006/Multi-select-Treeview-control-v


< pre lang =c#> private void treeView1_AfterCheck( object sender,TreeViewEventArgs e)
{
if (e.Action!= TreeViewAction.Unknown)
{
如果(忙) return ;
busy = true ;
尝试
{
TreeNode _node = e.Node;

checkNodes(e.Node,e.Node.Checked);
if (e.Node.Checked)
{
MessageBox.Show(e.Node.Text);
}
}


最后
{
busy = ;
}
}

}



  private   void  checkNodes(TreeNode节点, bool  check)
{
foreach (TreeNode child in node.Nodes)
{
< span class =code-keyword> if (child.Checked == true
{
MessageBox.Show(child 。文本);
}
// MessageBox.Show(child.Text);
checkNodes(child,check);
}
}


i want to select the multiple nodes from a treeview and want its text to be present in msgbox or console . but i am not able to do so. can anybody please help me.?

Added from answer below

//Create the tree from the database
        private void CreateTree(TreeNode n, int hdrID)
        {
            System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=D:\Builder.mdf;MultipleActiveResultSets = True;Integrated Security=True;Connect Timeout=30");
            con.Open();
            SqlCommand cmd = new SqlCommand("SELECT Id,Title FROM Presentation WHERE Pid=" + hdrID, con);
            SqlDataReader rdr = cmd.ExecuteReader();
            while (rdr.Read())
            {
                TreeNode t = new TreeNode(rdr["Title"].ToString());
                CreateTree(t, Convert.ToInt16(rdr["Id"].ToString()));
                if (n == null)
                {
                    treeView1.Nodes.Add(t);
                    //t.ImageIndex = 0;
                }
                else
                {
                    n.Nodes.Add(t);
                }
            }
            rdr.Close();
        }

解决方案

If you don't want checkboxes next to each item, this may be of use to you.

http://www.codeproject.com/Articles/8006/Multi-select-Treeview-control-v


private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)
        {
            if (e.Action != TreeViewAction.Unknown)
            {
                 if (busy) return;
                busy = true;
                try
                {
                    TreeNode _node = e.Node;
                    
                    checkNodes(e.Node, e.Node.Checked);
                    if (e.Node.Checked)
                    {
                        MessageBox.Show(e.Node.Text);
                    }
                }
                
               
                finally
                {
                    busy = false;
                }
            }

        }


private void checkNodes(TreeNode node, bool check)
        {
            foreach (TreeNode child in node.Nodes)
            {
                if (child.Checked == true)
                {
                    MessageBox.Show(child.Text);
                } 
                //MessageBox.Show(child.Text);
                checkNodes(child, check);
            }
        }


这篇关于如何使用C#和Visual Studio 2013从Treeview控件一次选择多个节点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆