问一个Treeviwe的小问题。

大_爱 2013-05-08 12:28:11
在TreeView中添加了数据,选择某个节点,然后点击了一个按钮

按钮中就就是把数据给移除了。

我想在按钮以后后,刷新TreeView,这个怎么做啊。一直没想到比较好的办法。

我准备用
this.treeView1.SelectedNode.Parent
获取父节点,然后重新加载数据。

但是获取到的父节点是空。获取不到。

不知道这个怎么办。
...全文
282 37 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
37 条回复
切换为时间正序
请发表友善的回复…
发表回复
hefei0603 2013-05-09
  • 打赏
  • 举报
回复
你删除SelectedNode前先把它的父节点记下来。
gx831218 2013-05-09
  • 打赏
  • 举报
回复
还有就是向上面说的,更新数据库(删除文件和删除树形节点信息),在重新构建树形,应该也可以实现。
gx831218 2013-05-09
  • 打赏
  • 举报
回复
那就是你的treeview失去焦点了,并没有节点在selected状态。 设置一个全局变量吧,点击一次树形节点对全局变量更新一个值,保存这个节点,删除时候直接用Remove(treenode:全局变量保存的节点)吧。暂时想不到好的方法了。
大_爱 2013-05-08
  • 打赏
  • 举报
回复
引用 7 楼 beefcattlexiaoyang 的回复:
[quote=引用 5 楼 sibiyellow 的回复:] 当你删除节点的时候 把你原来的数据里面的该节点的数据删掉不行么?
我也想删除节点的。[/quote] 我用remove方法,也会出异常,因为实际节点不存在了
大_爱 2013-05-08
  • 打赏
  • 举报
回复
引用 8 楼 xiongxyt2 的回复:
你不愿意重新生成 那就用jquery tree
C#里面有这种控件啊?但是其他东西都写好了,要修改好麻烦的。
xiongxyt2 2013-05-08
  • 打赏
  • 举报
回复
你不愿意重新生成 那就用jquery tree
大_爱 2013-05-08
  • 打赏
  • 举报
回复
引用 5 楼 sibiyellow 的回复:
当你删除节点的时候 把你原来的数据里面的该节点的数据删掉不行么?
我也想删除节点的。
大_爱 2013-05-08
  • 打赏
  • 举报
回复
引用 5 楼 sibiyellow 的回复:
当你删除节点的时候 把你原来的数据里面的该节点的数据删掉不行么?
我没有删除节点,而是下面的数据被删除了, 做的就是windows的资源管理器的样子,里面文件呗移动走了,但是我的节点还在,我就想同步这个。
天下如山 2013-05-08
  • 打赏
  • 举报
回复
当你删除节点的时候 把你原来的数据里面的该节点的数据删掉不行么?
大_爱 2013-05-08
  • 打赏
  • 举报
回复
引用 2 楼 sibiyellow 的回复:
treeview 不知道支不支持 这种节点的异步加载 或者你直接重新绑定新的treeview数据 或者你也可以找个开源tree控件 有很多是支持这种异步加载子节点的. 比如Ztree
我想了一下,只有重新帮顶数据, 但又不能全部重新帮顶, 我又获取不到删除节点的数据。如果能获取到我就重新加载了。
大_爱 2013-05-08
  • 打赏
  • 举报
回复
引用 1 楼 xiongxyt2 的回复:
按钮引起回发,在按钮的事件里面重新生成你想要的TreeView数据
我就是想重新生成数据。但是不能从根再生成吧。
天下如山 2013-05-08
  • 打赏
  • 举报
回复
treeview 不知道支不支持 这种节点的异步加载 或者你直接重新绑定新的treeview数据 或者你也可以找个开源tree控件 有很多是支持这种异步加载子节点的. 比如Ztree
xiongxyt2 2013-05-08
  • 打赏
  • 举报
回复
按钮引起回发,在按钮的事件里面重新生成你想要的TreeView数据
大_爱 2013-05-08
  • 打赏
  • 举报
回复
引用 32 楼 gx831218 的回复:
[quote=引用 28 楼 gx831218 的回复:] private void button2_Click(object sender, EventArgs e) { TreeNode tr = this.treeView1.SelectedNode; treeView1.Nodes.Remove(tr); }
这个呢?还不行?[/quote] 后面的节点获取不到。
大_爱 2013-05-08
  • 打赏
  • 举报
回复
引用 31 楼 Qxiaojie 的回复:
我的数据是从数据库里加载的,我运行程序后,我在数据库中把某个节点删除了,程序里没更新,数据库中被删除的节点在程序中依然显示,然后我选择该节点,单击删除按钮,就把节点从树控件中移除了,我不明白你的怎么会有问题
我也不懂。
gx831218 2013-05-08
  • 打赏
  • 举报
回复
引用 28 楼 gx831218 的回复:
private void button2_Click(object sender, EventArgs e) { TreeNode tr = this.treeView1.SelectedNode; treeView1.Nodes.Remove(tr); }
这个呢?还不行?
Qxiaojie 2013-05-08
  • 打赏
  • 举报
回复
我的数据是从数据库里加载的,我运行程序后,我在数据库中把某个节点删除了,程序里没更新,数据库中被删除的节点在程序中依然显示,然后我选择该节点,单击删除按钮,就把节点从树控件中移除了,我不明白你的怎么会有问题
大_爱 2013-05-08
  • 打赏
  • 举报
回复
引用 26 楼 gx831218 的回复:
TreeNode m_tn; private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) { m_tn = e.Node; } private void button2_Click(object sender, EventArgs e) { treeView1.Nodes.Remove(m_tn); } 选中节点放在变量里,在删除。
不行,我要等人家把文件操作完了才能使用。
gx831218 2013-05-08
  • 打赏
  • 举报
回复
那就这样吧,先去取。在删除。 在删除之前取出来就行了。
gx831218 2013-05-08
  • 打赏
  • 举报
回复
private void button2_Click(object sender, EventArgs e) { TreeNode tr = this.treeView1.SelectedNode; treeView1.Nodes.Remove(tr); }
加载更多回复(17)

111,097

社区成员

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

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

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