Wie kann ich ein Ereignis verwenden eine Methode, um zu bewirken, laufen?
Frage
So in meiner Dokumentation heißt es:
öffentliche Veranstaltung TreeViewPlusNodeCheckedEventHandler NodeChecked ()
Sie können dieses Ereignis verwenden, um ein Verfahren führen zu laufen, wenn die Kontrollkästchen für einen Knoten auf dem Baum überprüft.
Wie kann ich eine Methode, um meinen Code hinter Datei hinzufügen, die ausgeführt werden, wenn ein Knoten aktiviert ist? Die Methode, die ich laufen will, ist:
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
Lösung
Sie benötigen einen Delegierten zu dem Ereignis zuordnen und haben sie die Methode, die Sie wollen laufen. So etwas wie:
TreeViewControl.NodeChecked + = new TreeViewPlusNodeCheckedEventHandler (TOCNodeCheckedServer)
Andere Tipps
Fügen Sie einfach einen Handler auf das Ereignis.
myTreeView.NodeChecked += new TreeViewPlusNodeCheckedEventHandler(TOCNodeCheckedServer);
oder (weil die TreeViewPlusNodeCheckedEventHandler Instanziierung ist eigentlich nicht erforderlich)
myTreeView.NodeChecked += TOCNodeCheckedServer;
Dies ist ein Standardfall einen Handler für ein Ereignis Registrierung
treeView.NodeChecked += TOCNodeCheckedServer;
Auf dem Initialise Methode für das Formular Add
TOCTree.NodeChecked += new TreeViewPlusNodeCheckedEventHandler (TOCNodeCheckedServer);
Dies wird zeigen, Ihre App TOCNodeCheckedServer wenn die TOCNode Feuert die NodeChecked Ereignis.
laufenEs gibt viele Ressourcen im Internet zu erklären, wie das funktioniert. Schauen Sie sich http://www.csharphelp.com/archives/archive253.html als Beispiel.