TreeView样例绑定操作(设置Image图标)

2015-03-20 11:57:11  访问(1788) 赞(0) 踩(0)



        /// <summary>
        /// 
        /// </summary>
        const string page_white = "page_white";

        /// <summary>
        /// 
        /// </summary>
        const string page_white_go = "page_white_go";

        /// <summary>
        /// 
        /// </summary>
        const string page = "page";

        /// <summary>
        /// 
        /// </summary>
        const string page_save = "page_save";


        /// <summary>
        /// 
        /// </summary>
        /// <returns></returns>
        public ImageList CreateTreeIconImageList()
        {
            ImageList theResult = new ImageList();

            int idx = -1;

            theResult.Images.Add
                (
                    global::SlowX.StrOperApp.Properties.Resources.page_white
                );

            ++idx;
            theResult.Images.SetKeyName(idx, page_white);

            theResult.Images.Add
                (
                    global::SlowX.StrOperApp.Properties.Resources.page_white_go
                );

            ++idx;
            theResult.Images.SetKeyName(idx, page_white_go);

            theResult.Images.Add
                (
                    global::SlowX.StrOperApp.Properties.Resources.page
                );


            ++idx;
            theResult.Images.SetKeyName(idx, page);

            theResult.Images.Add
                (
                    global::SlowX.StrOperApp.Properties.Resources.page_save
                );


            ++idx;
            theResult.Images.SetKeyName(idx, page_save);

            return theResult;
        }



        /// <summary>
        /// g_
        /// </summary>
        protected const string g_ = "g_";

        /// <summary>
        /// n_
        /// </summary>
        protected const string n_ = "n_";

        /// <summary>
        /// 
        /// </summary>
        /// <param name="em"></param>
        /// <returns></returns>
        public SlowX.StrOperApp.Enums.OperGroup.EmOperGroup GetEmOperGroup
            (
                SlowX.StrOperApp.Enums.Oper.EmOper em
            )
        {
            switch (em)
            {
                case SlowX.StrOperApp.Enums.Oper.EmOper.合并空白:
                case SlowX.StrOperApp.Enums.Oper.EmOper.合并空格:
                case SlowX.StrOperApp.Enums.Oper.EmOper.合并空行:
                case SlowX.StrOperApp.Enums.Oper.EmOper.合并制表符:
                    return SlowX.StrOperApp.Enums.OperGroup.EmOperGroup.合并;
                case SlowX.StrOperApp.Enums.Oper.EmOper.填充:
                    return SlowX.StrOperApp.Enums.OperGroup.EmOperGroup.填充;
                case SlowX.StrOperApp.Enums.Oper.EmOper.移除开头数字:
                case SlowX.StrOperApp.Enums.Oper.EmOper.移除开头字母和数字:
                    return SlowX.StrOperApp.Enums.OperGroup.EmOperGroup.移除;
                case SlowX.StrOperApp.Enums.Oper.EmOper.转at表达式双引号为字符串:
                case SlowX.StrOperApp.Enums.Oper.EmOper.转双引号为at表达式:
                case SlowX.StrOperApp.Enums.Oper.EmOper.转双引号为通俗表达式:
                case SlowX.StrOperApp.Enums.Oper.EmOper.转通俗表达式双引号为字符串:
                case SlowX.StrOperApp.Enums.Oper.EmOper.转为大写:
                case SlowX.StrOperApp.Enums.Oper.EmOper.转为首字母大写:
                case SlowX.StrOperApp.Enums.Oper.EmOper.转为小写:
                    return SlowX.StrOperApp.Enums.OperGroup.EmOperGroup.转换;
                case SlowX.StrOperApp.Enums.Oper.EmOper.无:
                default:
                    return SlowX.StrOperApp.Enums.OperGroup.EmOperGroup.默认;
            }
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="searchText"></param>
        protected void LoadTree(string searchText)
        {

            ImageList il = CreateTreeIconImageList();
            treeView_Main.ImageList = il;

            TreeNodeCollection tnc = treeView_Main.Nodes;

            tnc.Clear();

            SlowX.StrOperApp.Enums.OperGroup.EmOperGroup[]
                emA = SlowX.StrOperApp.Enums.OperGroup.EmArray;

            SlowX.StrOperApp.Enums.Oper.EmOper[]
                emOA = SlowX.StrOperApp.Enums.Oper.EmArray;

            TreeNode tn = TreeNodeCreate
                (
                    SlowX.StrOperApp.Enums.OperGroup.EmOperGroup.默认,
                    SlowX.StrOperApp.Enums.Oper.EmOper.无
                );

            TreeNode tnLeaf = null;

            tnc.Add(tn);

            if (searchText == null || searchText.Length == 0)
            {
                foreach (SlowX.StrOperApp.Enums.OperGroup.EmOperGroup
                    em in emA)
                {
                    if (em == SlowX.StrOperApp.Enums.OperGroup.EmOperGroup.默认)
                        continue;

                    tn = TreeNodeGroupCreate(em);
                    tnc.Add(tn);

                    foreach (SlowX.StrOperApp.Enums.Oper.EmOper emO in emOA)
                    {
                        if (GetEmOperGroup(emO) != em)
                            continue;

                        tnLeaf = TreeNodeCreate(em, emO);
                        tn.Nodes.Add(tnLeaf);
                    }
                }
            }
            else
            {
                foreach (SlowX.StrOperApp.Enums.OperGroup.EmOperGroup
                    em in emA)
                {
                    if (em == SlowX.StrOperApp.Enums.OperGroup.EmOperGroup.默认)
                        continue;

                    tn = TreeNodeGroupCreate(em);
                    

                    foreach (SlowX.StrOperApp.Enums.Oper.EmOper emO in emOA)
                    {
                        if (GetEmOperGroup(emO) != em)
                            continue;

                        if (!emO.ToString().Contains(searchText))
                            continue;

                        tnLeaf = TreeNodeCreate(em, emO);
                        tn.Nodes.Add(tnLeaf);
                    }

                    if(tn.Nodes.Count>0)
                        tnc.Add(tn);
                }
            }

            treeView_Main.ExpandAll();
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="emG"></param>
        /// <param name="em"></param>
        /// <returns></returns>
        public TreeNode TreeNodeCreate
            (
                SlowX.StrOperApp.Enums.OperGroup.EmOperGroup emG,
                SlowX.StrOperApp.Enums.Oper.EmOper em
            )
        {
           TreeNode theResult = new TreeNode();
           theResult.Text = em.ToString();
           theResult.Tag = em;
           theResult.Name = n_ + ((int)emG).ToString() + "_" + ((int)em).ToString();

           theResult.ImageKey
              =
              page_white;

           theResult.SelectedImageKey
               =
               page_white_go;

           return theResult;
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="emG"></param> 
        /// <returns></returns>
        public TreeNode TreeNodeGroupCreate
            (
                SlowX.StrOperApp.Enums.OperGroup.EmOperGroup emG
            )
        {
            TreeNode theResult = new TreeNode();
            theResult.Text = emG.ToString();
            theResult.Tag = emG;
            theResult.Name = g_ + ((int)emG).ToString();

            theResult.ImageKey
               =
               page;

            theResult.SelectedImageKey
                =
                page_save;


            return theResult;
        }


上一条:

下一条:


 

相关评论

评论加载中……
 

发表评论

类型:
内容:
  (Alt+Enter)
 
  ┈全部┈  
 
(显示默认分类)