2008-09-25 35 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 爲例。

相關問題