이벤트를 사용하여 메소드를 실행할 수있는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/135121

  •  02-07-2019
  •  | 
  •  

문제

그래서 내 문서에서는 다음과 같습니다.

공개 이벤트 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

도움이 되었습니까?

해결책

이벤트에 대의원을 할당하고 원하는 방법을 실행해야합니다. 같은 것 :

TreeViewControl.NodeChecked += New 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예로서.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top