Pregunta

Así que en mi documentación dice:

  

evento público TreeViewPlusNodeCheckedEventHandler NodeChecked ()

     

Puede usar este evento para ejecutar un método que se ejecute siempre que   la casilla de verificación de un nodo está marcada en el árbol.

Entonces, ¿cómo agrego un método a mi código detrás del archivo que se ejecutará cuando se verifique un nodo? El método que quiero ejecutar es:

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 do# .net 3.5

¿Fue útil?

Solución

Debe asignar un delegado al evento y hacer que ejecute el método que desee. Algo como:

TreeViewControl.NodeChecked + = new TreeViewPlusNodeCheckedEventHandler (TOCNodeCheckedServer)

Otros consejos

Solo agrega un controlador al evento.

myTreeView.NodeChecked += new TreeViewPlusNodeCheckedEventHandler(TOCNodeCheckedServer);

o (porque en realidad no es necesario crear una instancia de TreeViewPlusNodeCheckedEventHandler)

myTreeView.NodeChecked += TOCNodeCheckedServer;

Este es un caso estándar de registro de un controlador para un evento

treeView.NodeChecked += TOCNodeCheckedServer;

En su método de inicialización para el formulario agregar

TOCTree.NodeChecked += new TreeViewPlusNodeCheckedEventHandler (TOCNodeCheckedServer);

Esto le dirá a tu aplicación que ejecute TOCNodeCheckedServer cuando TOCNode active el evento NodeChecked.

Hay muchos recursos en la web que explican cómo funciona esto. Visite http://www.csharphelp.com/archives/archive253.html  como ejemplo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top