0


0

イベントを使用してメソッドを実行させるにはどうすればよいですか。

だから私のドキュメンテーションでそれは言う:

_ _ パブリックイベントTreeViewPlusNodeCheckedEventHandler NodeChecked()

このイベントを実行すると、ツリーのノードのチェックボックスがオンになったときにメソッドが実行されます。 _ _

では、ノードがチェックされたときに実行されるファイルビハインドファイルにメソッドを追加するにはどうすればよいでしょうか。 実行したいメソッドは次のとおりです。

protected void TOCNodeCheckedServer(object sender, TreeViewPlusNodeEventArgs args)
{

    TreeViewPlusNode aNode = args.Node;
    if (!aNode.Checked)
        return;
    List BaseLayers = new List();
    _arcTOCConfig.BaseDataLayers.CopyTo(BaseLayers);

    List mapResources = new List();

    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

4 Answer


5


あなたはイベントにデリゲートを割り当て、それにあなたが望むメソッドを実行させる必要があります。 何かのようなもの :

TreeViewControl.NodeChecked = new TreeViewPlusNodeCheckedEventHandler(TOCNodeCheckedServer)


2


イベントにハンドラを追加するだけです。

myTreeView.NodeChecked = new TreeViewPlusNodeCheckedEventHandler(TOCNodeCheckedServer);

または(TreeViewPlusNodeCheckedEventHandlerをインスタンス化することは実際には必要ないため)

myTreeView.NodeChecked = TOCNodeCheckedServer;


2


これはイベント用のハンドラを登録する標準的なケースです

treeView.NodeChecked = TOCNodeCheckedServer;


0


フォームの初期化方法でadd

TOCTree.NodeChecked = new TreeViewPlusNodeCheckedEventHandler(TOCNodeCheckedServer);

これは、TOCNodeがNodeCheckedイベントを発生させたときに、TOCNodeCheckedServerを実行するようにアプリに指示します。

これがどのように機能するのかを説明するWeb上のリソースがたくさんあります。 例としてhttp://www.csharphelp.com/archives/archive253.htmlをチェックしてください。