TreeList控件的节点图标设置,在显示属性里要么设置为全部显示,要么全部不显示。
当前项目需求为,个别节点设置为不可用,个别节点设置为只显示线不显示选择框,由此只能抛弃treelist自身的checkbox显示设置,自己画图标。
利用StateImage属性设置图标显示,首先做一个图标的枚举,从资源文件里读取:
/// <summary>
/// TreeList页节点选择状态
/// </summary>
public enum TreeNodeCheckImage
{
CheckedBranch = 0, //选中枝
UnCheckedBranch = 1,//未选中枝
CheckedLeaf = 2, //选中叶(暂不用,跟0一样)
UnCheckedLeaf = 3, //未选中叶(暂不用,跟1一样)
BranchLine = 4, //枝线
LeafLine = 5, //叶线
DisCheckedBranch = 6,//不让选中枝
DisCheckedLeaf = 7,//不让选中叶
Loading = 8
}
/// <summary>
/// TreeList节点图标
/// </summary>
public class TreeListImageState
{
/// <summary>
/// 自定义TreeList节点图标
/// </summary>
/// <returns></returns>
public static ImageList GetImageList()
{
ImageList treeListImageList = new ImageList();
treeListImageList.TransparentColor = System.Drawing.Color.Transparent;
treeListImageList.Images.Add("0", OrgCertificate.Properties.Resources.tree_CheckedBranch);
treeListImageList.Images.Add("1", OrgCertificate.Properties.Resources.tree_UnCheckedBranch);
treeListImageList.Images.Add("2", OrgCertificate.Properties.Resources.tree_CheckedLeaf);
treeListImageList.Images.Add("3", OrgCertificate.Properties.Resources.tree_UnCheckedLeaf);
treeListImageList.Images.Add("4", OrgCertificate.Properties.Resources.tree_BranchLine);
treeListImageList.Images.Add("5", OrgCertificate.Properties.Resources.tree_LeafLine);
treeListImageList.Images.Add("6", OrgCertificate.Properties.Resources.tree_DisCheckedBranch);
treeListImageList.Images.Add("7", OrgCertificate.Properties.Resources.tree_DisCheckedLeaf);
treeListImageList.Images.Add("8", OrgCertificate.Properties.Resources.tree_Loading);
treeListImageList.ImageSize = new System.Drawing.Size(20, 20);
return treeListImageList;
}
/// <summary>
/// 自定义TreeList节点图标
/// </summary>
/// <returns></returns>
public static ImageCollection GetImageCollection()
{
ImageCollection treeListImageCol = new ImageCollection();
treeListImageCol.TransparentColor = System.Drawing.Color.Transparent;
treeListImageCol.Images.Add(OrgCertificate.Properties.Resources.tree_CheckedBranch, "0");
treeListImageCol.Images.Add(OrgCertificate.Properties.Resources.tree_UnCheckedBranch, "1");
treeListImageCol.Images.Add(OrgCertificate.Properties.Resources.tree_CheckedLeaf, "2");
treeListImageCol.Images.Add(OrgCertificate.Properties.Resources.tree_UnCheckedLeaf, "3");
treeListImageCol.Images.Add(OrgCertificate.Properties.Resources.tree_BranchLine, "4");
treeListImageCol.Images.Add(OrgCertificate.Properties.Resources.tree_LeafLine, "5");
treeListImageCol.Images.Add(OrgCertificate.Properties.Resources.tree_DisCheckedBranch, "6");
treeListImageCol.Images.Add(OrgCertificate.Properties.Resources.tree_DisCheckedLeaf, "7");
treeListImageCol.Images.Add(OrgCertificate.Properties.Resources.tree_Loading, "8");
treeListImageCol.ImageSize = new System.Drawing.Size(20, 20);
return treeListImageCol;
}
}
}