打钩有一个checked属性为true,用这个判断就可以了。

解决方案 »

  1.   

    你在BeforeCheck的事件写不行吗?每选中一个复选框就从数据库取一次数据显示到Node的Text上,如下:private void treeView1_BeforeCheck(object sender, System.Windows.Forms.TreeViewCancelEventArgs e)
    {
    object objID = e.Node.Tag;//假定Tab里放上了关键字信息.
    e.Node.Text = GetTextFromDataBase(objID);//GetTextFromDataBase()从数据库取值
    }
      

  2.   

    我代码是这样写的。绑定的代码。具体怎么循环怎么判断???private void RefreshTree(System.Windows.Forms.TreeView treeView)
    {

    DataView TerminalView = CreateDataView("select * from Terminal");
    DataView CRootView = CreateDataView("select * from croot");
    DataView LDView = CreateDataView("select * from ld"); if (TerminalView == null || CRootView == null || LDView == null)
    return;

    treeView.SuspendLayout(); System.Windows.Forms.TreeNodeCollection Nodes = treeView.Nodes; //节点的所有集合
    Nodes.Clear(); //清空 foreach(DataRowView drvTerminal in TerminalView)
    {
    TreeNode tnTerminal = new TreeNode();
    tnTerminal.Text = drvTerminal["terminal_name"].ToString();
    tnTerminal.Tag  = drvTerminal["terminal_id"].ToString(); //CRootView.RowFilter= "troot_id="+drvTerminal["terminal_id"].ToString();
    CRootView.RowFilter= "troot_id='"+drvTerminal["terminal_id"].ToString()+"'";
    foreach(DataRowView drvCRoot in CRootView)
    {
    //if (CRootView.Count < 1)
    //continue; TreeNode tnCRoot = new TreeNode();
    tnCRoot.Text = drvCRoot["croot_name"].ToString();
    tnCRoot.Tag  = drvCRoot["croot_id"].ToString(); //LDView.RowFilter= "tld_id="+drvCRoot["croot_id"].ToString();
    LDView.RowFilter= "tld_id='"+drvCRoot["croot_id"].ToString()+"'";
    foreach(DataRowView drvLD in LDView)
    {

    if (LDView.Count < 1)
    continue; TreeNode tnLD = new TreeNode();
    tnLD.Text = drvLD["ld_type"].ToString();
    tnLD.Tag  = drvLD["ld_id"].ToString();
    tnCRoot.Nodes.Add(tnLD); 
    tnLD.ImageIndex = 16;
    tnLD.SelectedImageIndex = 16;
    }
    tnTerminal.Nodes.Add(tnCRoot); 
    tnCRoot.ImageIndex = 13;
    tnCRoot.SelectedImageIndex = 13; }
    Nodes.Add(tnTerminal);
    tnTerminal.ImageIndex = 3;
    tnTerminal.SelectedImageIndex = 3;
    }
    treeView.ResumeLayout(false);
    }
    //****************************************************** //******************************************************
    public DataView CreateDataView(string SQLStr)
    {
    OleDbDataAdapter da = new OleDbDataAdapter(SQLStr,Conn); 
    DataSet ds = new DataSet();
    try
    {
    if(Conn.State != ConnectionState.Open)
    Conn.Open(); 
    da.Fill(ds);
    Conn.Close();
    return ds.Tables[0].DefaultView;  


    }
    catch
    {
    return null;
    }
    }
    我代码是这样写的。绑定的代码。具体怎么循环怎么判断???
      

  3.   

    你在BeforeCheck的事件写不行吗?每选中一个复选框就从数据库取一次数据显示到Node的Text上,如下:

    不行不能这么做。因为我是发命令必须群发。所以必须便利TREEVIEW我的目的是循环判断。不是显示。我只所以那么说。是要个例子看。不染的话我说串口发命令谁能听懂