Question

Ainsi, dans ma documentation, il est indiqué:

  

événement public TreeViewPlusNodeCheckedEventHandler NodeChecked ()

     

Vous pouvez utiliser cet événement pour exécuter une méthode à exécuter chaque fois que le   La case à cocher correspondant à un noeud est cochée dans l'arborescence.

Alors, comment puis-je ajouter une méthode à mon code derrière le fichier qui sera exécuté lorsqu'un nœud est vérifié? La méthode que je veux exécuter est la suivante:

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

Était-ce utile?

La solution

Vous devez affecter un délégué à l'événement et le laisser exécuter la méthode souhaitée. Quelque chose comme:

TreeViewControl.NodeChecked + = new TreeViewPlusNodeCheckedEventHandler (TOCNodeCheckedServer)

Autres conseils

Ajoutez simplement un gestionnaire à l'événement.

myTreeView.NodeChecked += new TreeViewPlusNodeCheckedEventHandler(TOCNodeCheckedServer);

ou (car l'instanciation de TreeViewPlusNodeCheckedEventHandler n'est pas réellement nécessaire)

myTreeView.NodeChecked += TOCNodeCheckedServer;

Ceci est un cas standard d'enregistrement d'un gestionnaire pour un événement

treeView.NodeChecked += TOCNodeCheckedServer;

Sur votre méthode d'initialisation pour le formulaire, ajoutez

TOCTree.NodeChecked += new TreeViewPlusNodeCheckedEventHandler (TOCNodeCheckedServer);

Cela indiquera à votre application d'exécuter TOCNodeCheckedServer lorsque TOCNode déclenche l'événement NodeChecked.

Il existe de nombreuses ressources sur le Web expliquant comment cela fonctionne. Découvrez http://www.csharphelp.com/archives/archive253.html .  à titre d'exemple.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top