在TreeView中,结点的全面都有一个复选框,
我把每个接点都定义了一个变量,现在是如果复选框为选中,
那么此接点的变量就为1,反之为0。这个是递归选择代码
private void SelectAllNodes(TreeNodeCollection Nds, bool Selected)
{
foreach (TreeNode node in Nds)
{
if (node.Checked == Selected)
node.Checked = !Selected;
SelectAllNodes(node.Nodes, Selected);
}
请问是在TREEVIEW的哪个事件中添加变量改变的代码以及如何判断此结点的
复选框为已经是选中了呢?
我把每个接点都定义了一个变量,现在是如果复选框为选中,
那么此接点的变量就为1,反之为0。这个是递归选择代码
private void SelectAllNodes(TreeNodeCollection Nds, bool Selected)
{
foreach (TreeNode node in Nds)
{
if (node.Checked == Selected)
node.Checked = !Selected;
SelectAllNodes(node.Nodes, Selected);
}
请问是在TREEVIEW的哪个事件中添加变量改变的代码以及如何判断此结点的
复选框为已经是选中了呢?
解决方案 »
- OCX配置文件路径的问题
- 请教c#委托 GetInvocationList问题
- 正则表达式求解
- ComboBox的SelectedIndexChanged事件
- 有人知道gecko什么调用click功能和javascript函数吗?,跪谢呀
- Application.Run(MainForm)后,不引用MainForm的命名空间,如何得到MainForm?
- 项目的复制
- 请问哪位朋友有将sql server2000所有的数据库,表,约束,存储过程,视图等做为结点导入到WINFORM中TreeView中的代码,思路??谢谢!!
- 怎么使鼠标点在屏幕上时,程序自动隐藏或关闭!
- 中秋送给大家的好礼:新版ACCESS+SQLSERVER数据库的代码生成器,来者有分!
- 地址栏图标问题?
- 【初学者请教】帮忙分析分析代码原理(字典)
而现在是用递归方法选中复选框,是Check了。树有复选框的话用鼠标点击结点
,此结点的复选框是不会变为选中状态的,而要点复选框才可以。
能不能在递归的时候顺便给变量付值呢?
现在的问题是,如何将从数据库中读取出来的数据对应绑定到
treeview中啊,如果对应结点的数据为1,那么此结点的复选框
为选中状态,反之为未选中状态??????
private void BindTV()
{
DataSet ds;//查询菜单数据
if (ds.Tables[0].Rows.Count > 0)
{
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
TreeNode rootNode = new TreeNode();
rootNode.Text = ds.Tables[0].Rows[i]["NAME"].ToString();
rootNode.NavigateUrl = "http://#";
rootNode.Value = ds.Tables[0].Rows[i]["BH"].ToString();
DataSet dset = new DataSet();
if (dset.Tables[0].Rows.Count > 0)
rootNode.Checked = true;
else
rootNode.Checked = false;
dset.Dispose();
this.TreeView1.Nodes.Add(rootNode);
BindTree(rootNode);
rootNode.Expand();
}
}
}
private void BindTree(TreeNode node)
{
DataSet dst = new DataSet();
if (IsHasChild(node.Value.ToString(), out dst))
{
DataView dv = dst.Tables[0].DefaultView;
dv.Sort = " BH";
for (int i = 0; i < dv.Count; i++)
{
TreeNode nd = new TreeNode();
nd.Text = dv[i]["NAME"].ToString().Trim();
nd.Value = dv[i]["BH"].ToString().Trim();
nd.NavigateUrl = "http://#";
DataSet dset = new DataSet();
if (dset.Tables[0].Rows.Count > 0)
nd.Checked = true;
else
nd.Checked = false;
node.ChildNodes.Add(nd);
BindTree(nd);
}
}
else
return;
}
private void SelectAllNodes(TreeNodeCollection Nds, bool Selected)
{
foreach (TreeNode node in Nds)
{
if (node.Checked == Selected)
node.Checked = !Selected;
SelectAllNodes(node.Nodes, Selected);
}