如何使用事件导致方法运行?
时间:2020-03-06 14:44:24 来源:igfitidea点击:
所以在我的文档中它说:
public event TreeViewPlusNodeCheckedEventHandler NodeChecked() You can use this event to run cause a method to run whenever the check-box for a node is checked on the tree.
那么,如何在我的文件后面的代码中添加一种方法,该方法将在检查节点时运行?我要运行的方法是:
protected void TOCNodeCheckedServer(object sender, TreeViewPlusNodeEventArgs args) { TreeViewPlusNode aNode = args.Node; if (!aNode.Checked) return; List<string> BaseLayers = new List<string>(); _arcTOCConfig.BaseDataLayers.CopyTo(BaseLayers); List<MapResourceItem> mapResources = new List<MapResourceItem>(); if (BaseLayers.Contains(aNode.Text)) { foreach (BaseDataLayerElement anEl in _arcTOCConfig.BaseDataLayers) { if (!aNode.Text.Equals(anEl.Name)) { if (aNode.TreeViewPlus.Nodes.FindByValue(anEl.Name).Checked) { aNode.TreeViewPlus.Nodes.FindByValue(anEl.Name).Checked = false; aNode.TreeViewPlus.Nodes.FindByValue(anEl.Name).Refresh(); MapResourceItem aMapResource = this.Map1.MapResourceManagerInstance.ResourceItems.Find(anEl.Name); aMapResource.DisplaySettings.Visible = false; this.Map1.RefreshResource(anEl.Name); mapResources.Add(aMapResource); this.Map1.MapResourceManagerInstance.ResourceItems.Remove(aMapResource); } else { MapResourceItem aMapResource = this.Map1.MapResourceManagerInstance.ResourceItems.Find(anEl.Name); mapResources.Add(aMapResource); this.Map1.MapResourceManagerInstance.ResourceItems.Remove(aMapResource); } } } foreach (MapResourceItem aMapResource in mapResources) { int count = this.Map1.MapResourceManagerInstance.ResourceItems.Count - 1; this.Map1.MapResourceManagerInstance.ResourceItems.Insert(count, aMapResource); this.Map1.MapResourceManagerInstance.CreateResource(aMapResource); } this.Map1.InitializeFunctionalities(); this.Map1.Refresh(); } }
vs 2008
C
.net 3.5
解决方案
我们需要为事件分配一个委托,并使其运行所需的方法。就像是 :
TreeViewControl.NodeChecked + =新的TreeViewPlusNodeCheckedEventHandler(TOCNodeCheckedServer)
只需向事件添加处理程序即可。
myTreeView.NodeChecked += new TreeViewPlusNodeCheckedEventHandler(TOCNodeCheckedServer);
或者(因为实际上不需要实例化TreeViewPlusNodeCheckedEventHandler)
myTreeView.NodeChecked += TOCNodeCheckedServer;
这是注册事件处理程序的标准情况
treeView.NodeChecked += TOCNodeCheckedServer;
在表单的初始化方法上,添加
TOCTree.NodeChecked += new TreeViewPlusNodeCheckedEventHandler (TOCNodeCheckedServer);
这将告诉应用在TOCNode触发NodeChecked事件时运行TOCNodeCheckedServer。
网络上有大量的资源说明了它是如何工作的。查看http://www.csharphelp.com/archives/archive253.html
举个例子。