Icons an TreeView-Nodes

28/05/2008 - 13:52 von Veronika Neufeind | Report spam
Hallo zusammen,

Ich versuche gerade vergeblich an ein TreeView abhàngig vom Node-Typ Icons
anzubinden. Die Daten lade ich aus einer SQL-DB und möchte anhand des Index
(int) jeweils das Icon aus der ImageList an den Node bringen. Momentan sieht
der Tree so aus:

0 Root (Die „0“ bzw. „1“ ist der Index aus DB)
1 Node_1
2 SubNode_1
1 Node_2
2 SubNode_2

Kann mir vielleicht jemand dabei helfen. Das wàre sehr schön, denn bei
meinen Tests erscheinen nur identische Icons auf allen Nodes.

Vielen Dank und Gruß

Veronika


private void treeLoader()
{
conn.Open();
DataSet ds = new DataSet();
ds.Clear();
cmd.CommandType = CommandType.Text;
cmd.Parameters.Clear();
cmd.CommandText = "Select * from tTest order by NodeID";

da.Fill(ds);

ImageList img = new ImageList();
// tvMain.ImageList = img;

tvMain.Nodes.Clear();

if (ds.Tables.Count > 0)
foreach (DataRow dr in ds.Tables[0].Rows)
{
try
{
if (dr["ParentID"].ToString() == "0")
{
tvMain.Nodes.Add(dr["NodeID"].ToString(),
dr["Index"] + " " + dr["NodeName"].ToString()).Tag =
dr["NodeID"].ToString();
}
else
{
DataRow[] drow = Ds.Tables[0].Select("NodeID=" +
dr["ParentID"]);

tvMain.SelectedNode =
tvMain.Nodes.Find(drow[0]["NodeID"].ToString(), true)[0];

tvMain.SelectedNode.Nodes.Add(dr["NodeID"].ToString(), dr["Index"] + " " +
dr["NodeName"].ToString()).Tag = dr["NodeID"].ToString();
}
tvMain.ExpandAll();

}
catch (Exception ex)
{
}

}
conn.Close();
}
 

Lesen sie die antworten

#1 Herfried K. Wagner [MVP]
28/05/2008 - 14:23 | Warnen spam
Hallo Veronika!

"Veronika Neufeind" schrieb:
Ich versuche gerade vergeblich an ein TreeView abhàngig vom Node-Typ Icons
anzubinden. Die Daten lade ich aus einer SQL-DB und möchte anhand des
Index
(int) jeweils das Icon aus der ImageList an den Node bringen. Momentan
sieht
der Tree so aus:

0 Root (Die „0“ bzw. „1“ ist der Index aus DB)
1 Node_1
2 SubNode_1
1 Node_2
2 SubNode_2

Kann mir vielleicht jemand dabei helfen. Das wàre sehr schön, denn bei
meinen Tests erscheinen nur identische Icons auf allen Nodes.
[...]
tvMain.Nodes.Add(dr["NodeID"].ToString(),
dr["Index"] + " " + dr["NodeName"].ToString()).Tag > dr["NodeID"].ToString();



Schau Dir die verschiedenen Überladungen von 'TreeNodeCollection.Add' an.
Einige Überladungen erwarten den Bildindex in der ImageList, die mit dem
Steuerelement verknüpft ist. Alternativ kannst Du die Eigenschaften
'ImageIndex' bzw. 'ImageKey' des von 'Add' zurückgegebenen
'TreeNode'-Objektes setzen.

M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://dotnet.mvps.org/dotnet/faqs/>

Ähnliche fragen