有没有办法在选择节点两次时引发 SelectedNodeChanged 事件。我不能使用代码“treeview.SelectedNode.Selected = false”,因为我必须显示树的选定节点,但同时,我想要一些事件,以便我可以捕获节点上的点击。有什么办法吗?
提前致谢
有没有办法在选择节点两次时引发 SelectedNodeChanged 事件。我不能使用代码“treeview.SelectedNode.Selected = false”,因为我必须显示树的选定节点,但同时,我想要一些事件,以便我可以捕获节点上的点击。有什么办法吗?
提前致谢
您可以做的是将代码放在另一个事件中,例如预渲染,您可以通过使用布尔类变量(例如 blnIsChanged)来确定选择是否已更改。此值的默认值 false 仅在 SelectedNodeChanged 事件中设置为 true,因此您可以在预渲染(或在 SelectedNodeChanged 事件之后触发的任何事件)中有一个 if 语句,如果 blnIsChanged = false 并执行您的代码如果它=真,则什么都没有。
例子:
Partial Class YourPageWithaAtreeView
Inherits System.Web.UI.Page
Dim _blnSelectionChanged as Boolean = false
Protected Sub MyTree_SelectedNodeChanged(byval sender as object, byval e as eventargs) handles MyTree.SelectedNodeChanged
_blnSelectionChanged = true //The selection changed
End Sub
Protected Sub MyTree_PreRender(byval sender as object, byval e as eventargs) handles MyTree.PreRender
if _blnSelectionChanged = false Then
//Because the boolean is not true that means that
//the selected node didn't change
//insert the code you want to execute when the user
//clicks the already selected node
end if
End Sub
是的,标准 TreeView 控件没有 OnNodeClick() 事件真的很烦人。
我最终使用了支持此事件的Telerik版本(“RadTreeView”)。
另一种方法是以迂回的方式编写您自己的处理程序,如下所述:http: //www.programmersheaven.com/mb/csharp/341363/341363/event-handling-treeview/