C# treeview添加三层结构,并为叶子节点增加双击事件

C# treeview添加三层结构,并为叶子节点增加双击事件

2023年6月22日发(作者:)

treeview添加新节点的代码:

//Initial TreeView

//pdate();

//();

//("Parent");

//[0].("Child 1");

//[0].("Child 2");

//[0].Nodes[1].("Grandchild");

//[0].Nodes[1].Nodes[0].("Great Grandchild");

//ate();

核心思想,用dataAdapter进行数据查询,将查询结果赋值给DataSet中的一个DataTable,然后用DataTableReader来读取DataTable,再利用DataRow[]数组,将DataTableReader读取的信息存入数组,其中数组长度可以由属性来确定,数组赋值(DataRow[],0),通过这条命令,已经将DataReader读取的DataTable中的数据存入DataRow[]中了。需要注意的是DataRows存储的数据类型是object,所以最好调试的时候加入断点来判断自己所需数据的位置。

如array[0].ItemArray[0].ToString(),就是将Rows数组中第一个元素所包含的ItemArray成员的第一个元素转化成了字符串类型。

将根节点,第二级节点和叶子节点分别用上述方法表示,再利用嵌套for循环就可以完成treeview中添加三层结构的需求。

pdate();

();

for (int i = 0; i < ; i++)

{

(arry[i].ItemArray[1].ToString() );//+ "(" + arry[i].ItemArray[1].ToString()+")");

[i].Tag = ng();

GradeID = arry[i].ItemArray[0].ToString();

string str_class = "select * from classes where classgrade=" + GradeID;

OleDbDataAdapter da_class = new OleDbDataAdapter(str_class, conn);

DataSet ds_class = new DataSet();

da_(ds_class, "treeNodesCh");

DataTable dt_class = ds_["treeNodesCh"];

DataTableReader dr_class = new DataTableReader(dt_class);//ds_class["treeNodesCh"];

DataRow[] arry_class = new DataRow[dt_];

dt_(arry_class, 0);

for (int j = 0; j < dt_; j++)

{

[i].(arry_class[j].ItemArray[1].ToString());

[i].Nodes[j].Tag = ng() + ng();

ClassID = arry_class[j].ItemArray[0].ToString(); string str_student = "select * from students where classID =" + ClassID;

OleDbDataAdapter da_stu = new OleDbDataAdapter(str_student, conn);

DataSet ds_stu = new DataSet();

da_(ds_stu, "treeNodesChCh");

DataTable dt_stu = ds_["treeNodesChCh"];

DataTableReader dr_stu = new DataTableReader(dt_stu);//ds_class["treeNodesCh"];

DataRow[] arry_stu = new DataRow[dt_];

dt_(arry_stu, 0);

for (int k = 0; k < dt_; k++)

{

[i].Nodes[j].(arry_stu[k].ItemArray[1].ToString());

[i].Nodes[j].Nodes[k].Tag = ng() + ng() + ng();

}

}

}

ate();

对于鼠标双击事件,这个有点小技巧,我用的是treeview的MouseDown事件,如何判断根节点,次一级节点和叶子节点,其实上面的代码已经有了:

[i].Nodes[j].Tag = ng() + ng();这个就是第二集节点。

[i].Nodes[j].Nodes[k].Tag = ng() + ng() + ng();这个是叶子。

在MouseDown事件中判断叶子节点是否被选中,只需要判断ng().Length的长度是否是3,如果是就是叶子节点,如果不是,就是根或者次一级节点,

private void treeView1_MouseDown(object sender, MouseEventArgs e)

{

if ( ==null)

="fuck";

//edNode.

else if (ng().Length >= 3)

{

= null;

edNode = null;

btnClic sh = new btnClic();

();

}

}

发布者:admin,转转请注明出处:http://www.yc00.com/news/1687385032a6101.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信