Moo*_*ght 5 c# treeview winforms
我有一个TreeView显示CheckBoxes:

我想检查给定目录是否包含“.mdf”数据库,如果包含,请检查它是否附加在所选服务器实例上。如果附加了数据库,我会针对该节点显示一张图像,如果未附加,则显示不同的图像。注:图片为 .png 格式,大小为 32x32...
我填充一个ImageList来自Properties.Resources
mainImageList = new ImageList();
mainImageList.Images.Add(Properties.Resources.Database);
mainImageList.Images.Add(Properties.Resources.DatabaseGrey);
Run Code Online (Sandbox Code Playgroud)
然后我遍历树并添加相关图像
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);
}
Run Code Online (Sandbox Code Playgroud)
上面的代码毫无怨言地通过循环,找到“.mdf”并似乎添加了相关ImageIndexes但这些没有显示在.mdf 文件中TreeView。我在这里做错了什么,我可以ImageList在设计时添加(我似乎也做不到)?
我已经阅读了几篇文章,当然还有MSDN 文档,但我似乎仍然无法让它工作。一如既往的任何帮助,非常感谢。
确保 TreeView 控件的ImageList属性设置为正确的ImageList引用:
mainImageList = new ImageList();
mainImageList.Images.Add(Properties.Resources.Database);
mainImageList.Images.Add(Properties.Resources.DatabaseGrey);
treeView1.ImageList = mainImageList;
Run Code Online (Sandbox Code Playgroud)