Hallo,
Ich will mit einen Hintergrund-Thread den Imageindex eines Treenodes ändern. Funktioniert soweit ganz prima, jedoch wenn die zu ändernde Treenode makiert (ausgewählt) ist, wird das Image nicht neu gezeichnet.
Also das ganze etwas genauer: In einer GUI (Form) befindet sich eine Treeview mit Treenodes drin. Ein anderer Thread soll diese Nodes nun ändern, dazu invoked er die GUI und ändert den ImageIndex (und damit das Icon des Nodes). Wenn die zu ändernde Treenode ausgewählt ist, wird sie nicht neu gezeichnet, sondern erst wenn etwas anderes ausgewählt wird. Ansonsten gehts.
Der Thread sieht so aus:
............
if (status.Equals("on")) //hier wird der ImageIndex geändert!
{
InvokeIfRequired(treeView, (MethodInvoker)delegate()
{
n.ImageIndex = 1;
});
}
............
//das ist nun die methode zum invoken
private void InvokeIfRequired(Control target, Delegate methodToInvoke)
{
if (target.
target.Invoke(methodToInvoke);
else
methodToInvoke.DynamicInvoke();
}
Hab nach der Änderung treeView.Refresh() und treeView.Invalidate() versucht, hat aber auch nix gebracht.
Kann da bitte jemand helfen.
Grüße