使用treeview的NodeMouseClick事件遇到的问题

qingyun27sc 2009-12-04 05:12:59
在设计页面,我拉了一个TreeView控件,控件右边是一些textbox用来显示与控件被点中结点的相关信息。我想实现的功能就

是,在我点击左边treeview控件的结点时,右边textbox显示与被选中结点想关的信息。

我在treeview控件中加载了一个三级节点--班级(节点头)、各个班级的名称、以及各个班级名称下的学生姓名。

我在第三级节点(学生姓名)的Tag里存放了一个结构体,结构体里面是这个学生相应一些信息,我想实现的就是在点击这个

学生姓名节点的时候,右侧textbox显示的内容是从tag里取出来的相应的信息。


在treeview的NodeMouseClick事件里编写代码的时候遇到了挺多问题,不好阐述(据说好像是treeview的BUG),请问这个功

能你们是怎么实现的呢?如果有原代码的话并且加以解释的话就更好了

各位大哥大姐帮个忙,写了三个礼拜的作业就剩这个问题卡住了 我把今天火箭赢球的赢来的分数全奉上啦~~
...全文
231 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qingyun27sc 2009-12-04
  • 打赏
  • 举报
回复
不好意思 是我自己的问题 前面看错了一个变量
qingyun27sc 2009-12-04
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 freeboy827 的回复:]
写在afterselect事件里吧
C# codeswitch(e.node.level)
{case0:break;case1:break;case2:
结构体 a= e.node.tagas 结构体//进行绑定break;

}
[/Quote]

用这个方法的时候遇到一个问题,恳请大家说说出错的原因是什么。

如上,结构体对象a 在对它进行使用时stuInformation a = e.Node.Tag as stuInformation;

错误 1 as 运算符必须用于引用类型或可以为 null 类型(“landForm_GMS.viewStuForm.stuInformation”是一种不可以为 null 值的类型) C:\Users\lqy\Desktop\landForm_GMS\landForm_GMS\viewStuForm.cs 142 40 GradeManageSystem

然后我换了一个方法来调用,
switch (e.Node.Level)
{
case 0:
break;
case 1:
break;
case 2:
txtID.Text = ((stuInformation)e.Node.Tag).ID.ToString();

break;
}

调试的时候不报错,运行时,当我点击第三级节点时,报错:未将对象引用设置到对象的实例。


请大家帮我看看 到底是哪里出了问题呢
qingyun27sc 2009-12-04
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 freeboy827 的回复:]
写在afterselect事件里吧
C# codeswitch(e.node.level)
{case0:break;case1:break;case2:
结构体 a= e.node.tagas 结构体//进行绑定break;

}
[/Quote]


嗯 感觉这个方法比较好理解
freeboy827 2009-12-04
  • 打赏
  • 举报
回复
写在afterselect事件里吧

switch(e.node.level)
{
case 0:
break;
case 1:
break;
case 2:
结构体 a = e.node.tag as 结构体
//进行绑定
break;

}
INTTNY 2009-12-04
  • 打赏
  • 举报
回复
有挺多实现方法的呢,我想到一个内聚较高的方法。

第一步定义一个DataTable,然后在Load的时候将这个数据表的列都写好(就是动态生成一个数据表么)。
第二步将那些TextBox群组绑定到这个DataTable的具体某个列。
第三布在AfterSelect事件中将那个学生实体给按列写到这个DataTable中(就是更改那个DataTable并保证只有一行数据)

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧