2008-09-25 40 views
0

所以我的文档中,它说:如何使用事件来使某个方法运行?

公共事件TreeViewPlusNodeCheckedEventHandler NodeChecked()

您可以使用此事件来运行引起的方法来运行每当一个节点 复选框是在检查树。

那么如何添加一个方法到我的代码后面的文件,将在节点检查时运行?我想运行的方法是:

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

回答

5

您需要指派代表到事件并让它运行需要的方法。喜欢的东西:

TreeViewControl.NodeChecked + =新TreeViewPlusNodeCheckedEventHandler(TOCNodeCheckedServer)

2

的处理程序只需添加到事件。

myTreeView.NodeChecked += new TreeViewPlusNodeCheckedEventHandler(TOCNodeCheckedServer); 

或(因为实例化TreeViewPlusNodeCheckedEventHandler实际上不是必要的)

myTreeView.NodeChecked += TOCNodeCheckedServer; 
2

这是注册一个处理程序事件

treeView.NodeChecked += TOCNodeCheckedServer; 
+0

我在哪里放行?方法之外? – mrjrdnthms 2008-09-25 18:51:42

+0

您可以访问treeView变量的任何地方。对于在设计时创建的TreeView,表单的构造函数或Load hander将工作。 – 2008-09-26 18:00:21

0

在您的initialise方法的标准情况下,表格添加

TOCTree.NodeChecked += new TreeViewPlusNodeCheckedEventHandler (TOCNodeCheckedServer); 

这会告诉您的应用程序在TOCNode触发NodeChecked事件时运行TOCNodeCheckedServer。

网上有大量资源解释这是如何工作的。以http://www.csharphelp.com/archives/archive253.html 为例。

相关问题