Treeview复选框问题 打钩有一个checked属性为true,用这个判断就可以了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你在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()从数据库取值} 我代码是这样写的。绑定的代码。具体怎么循环怎么判断???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; } }我代码是这样写的。绑定的代码。具体怎么循环怎么判断??? 你在BeforeCheck的事件写不行吗?每选中一个复选框就从数据库取一次数据显示到Node的Text上,如下:,不行不能这么做。因为我是发命令必须群发。所以必须便利TREEVIEW我的目的是循环判断。不是显示。我只所以那么说。是要个例子看。不染的话我说串口发命令谁能听懂 怎样理解委托容易些呢 C# 事件 能重写吗 ? powerdesigner11 this指针问题 在C#中如何写一个打开钱箱的代码,高分,在线等答案 !如何判断DataGrid没有记录?!即行数为零?!没分啦!送完最后十分问个简单的问题!】 这是不是vs2003的bug????? 请教各位 如何将DataGridView1中checkbox选中项显示在DataGridView2中 求助 C# 一个关于对象的问题 请教!在线等啊,急! DataView在DataGrid中显示的问题
{
object objID = e.Node.Tag;//假定Tab里放上了关键字信息.
e.Node.Text = GetTextFromDataBase(objID);//GetTextFromDataBase()从数据库取值
}
{
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;
}
}
我代码是这样写的。绑定的代码。具体怎么循环怎么判断???
,
不行不能这么做。因为我是发命令必须群发。所以必须便利TREEVIEW我的目的是循环判断。不是显示。我只所以那么说。是要个例子看。不染的话我说串口发命令谁能听懂