TreeNode zur Laufzeit anderes Image zuweisen?

05/08/2008 - 16:01 von Michael Andreas | Report spam
Hi,

ich möchte einer TreeNode zur Laufzeit ein Image
zuweisen, dass nicht in einer ImageListe steht.
Geht das, oder muss ich grundsàtzlich den Umweg
über die ImageListe gehen?

Danke Michael
 

Lesen sie die antworten

#1 Frank Dzaebel
05/08/2008 - 22:04 | Warnen spam
Hallo Michael,

ich möchte einer TreeNode zur Laufzeit ein Image
zuweisen, dass nicht in einer ImageListe steht.
Geht das, oder muss ich grundsàtzlich den Umweg
über die ImageListe gehen?



Also, man bràuchte keine ImageList direkt
vorbereitet zu haben, sondern könnte das
dynamisch zur Laufzeit auch über Ressourcen-Icons
machen, die man aber dann *intern* ggf. gekapselt schon
einer ImageList zuweist. Also etwa ganz grob:

private void button1_Click(object sender, EventArgs e)
{
ImageSetzen(treeView1, "Knoten2",
Properties.Resources.Icon1);
}

void ImageSetzen(TreeView tv, string knotenName,
Icon icon)
{
if (!tv.Nodes.ContainsKey(knotenName))
{
MessageBox.Show("Knoten '" + knotenName +
"' nicht vorhanden!"); return;
}

if (tv.ImageList == null)
{
tv.ImageList = new ImageList();
tv.ImageList.Images.Add("Default",
Properties.Resources.IconDefault);
}

if (!tv.ImageList.Images.ContainsKey(knotenName))
tv.ImageList.Images.Add(knotenName,
Properties.Resources.Icon1);

TreeNode tn = tv.Nodes[knotenName];
tn.ImageIndex = tv.ImageList.Images.Count - 1;
tn.ImageKey = knotenName;
}


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen