我有TreeView
,显示CheckBox
es:
我想检查给定目录是否包含“.mdf”数据库,如果是,请检查它是否附加在所选服务器实例上。如果附加了数据库,则会针对该节点显示图像,如果未附加,则显示不同的图像。注意:图像为.png格式,大小为32x32 ......
我从ImageList
Properties.Resources
mainImageList = new ImageList();
mainImageList.Images.Add(Properties.Resources.Database);
mainImageList.Images.Add(Properties.Resources.DatabaseGrey);
然后我遍历树并添加相关图像
public static void RecursiveAddImage(TreeNode treeNode, List<string> attachedList)
{
if (String.Compare(Path.GetExtension(treeNode.Text), ".mdf", true) == 0)
{
string databaseName = treeNode.Text.Replace(".mdf", String.Empty);
if (attachedList.Contains(databaseName))
{
treeNode.ImageIndex = 0;
treeNode.SelectedImageIndex = 0;
}
else
{
treeNode.ImageIndex = 1;
treeNode.SelectedImageIndex = 1;
}
}
foreach (TreeNode node in treeNode.Nodes)
RecursiveAddImage(node, attachedList);
}
上面的代码经过循环而没有任何投诉,找到“.mdf”并且似乎添加了相关的ImageIndexes
,但这些没有显示在TreeView
中。我在这里做错了什么,我可以在设计时添加ImageList
(我似乎也做不到的事情)?
我已经阅读了MSDN documantation的几个帖子,但我仍然无法使其正常工作。一如既往的任何帮助,非常感谢。
答案 0 :(得分:3)
确保TreeView控件的ImageList
属性设置为正确的ImageList
引用:
mainImageList = new ImageList();
mainImageList.Images.Add(Properties.Resources.Database);
mainImageList.Images.Add(Properties.Resources.DatabaseGrey);
treeView1.ImageList = mainImageList;
答案 1 :(得分:2)
TreeNode.StateImageIndex= 0;
会设置图像列表图像。确保图像列表绑定到Treeview控件,如上所述。