/// <summary>
 /// 根据模板名称加载模板控件列表
 /// </summary>
 /// <param name="editname">模板名称</param>
 private DataTable LoadCustomControlList(string editname)
 {
     if (editname != string.Empty)
     {
         XmlDocument document = EditTemplateInfo.GetEditXmlDocument(EditName.Substring(0, EditName.IndexOf(".")) + ".xml");//获取编辑模板XML
         XmlElement  parent   = document.DocumentElement;
         //模板中文说明|也就是模板所代表的纸面意思
         Lb_cname.Text = parent.ChildNodes[2].InnerText;
         //遍历所有的控件项节点|并添加到数据集中
         DataTable controltb = GetControlDB(EditName);
         foreach (XmlElement item in parent.ChildNodes[4])
         {
             DataRow controlrow = controltb.NewRow();
             controlrow["TAB_INDEX"]   = EditTemplateMethod.GetXmlNodeText(item.SelectSingleNode("TAB_INDEX"));
             controlrow["ITEM_CNAME"]  = EditTemplateMethod.GetXmlNodeText(item.SelectSingleNode("ITEM_CNAME"));
             controlrow["ITEM_ENAME"]  = EditTemplateMethod.GetXmlNodeText(item.SelectSingleNode("ITEM_ENAME"));
             controlrow["ITEM_WIDTH"]  = EditTemplateMethod.GetXmlNodeText(item.SelectSingleNode("ITEM_WIDTH"));
             controlrow["ITEM_HEIGHT"] = EditTemplateMethod.GetXmlNodeText(item.SelectSingleNode("ITEM_HEIGHT"));
             controlrow["POS_X"]       = EditTemplateMethod.GetXmlNodeText(item.SelectSingleNode("POS_X"));
             controlrow["POS_Y"]       = EditTemplateMethod.GetXmlNodeText(item.SelectSingleNode("POS_Y"));
             controlrow["MULTILINE"]   = EditTemplateMethod.GetXmlNodeText(item.SelectSingleNode("MULTILINE")) == "1" ? "是" : "否";
             controlrow["WORD_WRAP"]   = EditTemplateMethod.GetXmlNodeText(item.SelectSingleNode("WORD_WRAP")) == "1" ? "是" : "否";
             controlrow["ITEM_TYPE"]   = EditTemplateMethod.GetXmlNodeText(item.SelectSingleNode("ITEM_TYPE"));
             controltb.Rows.Add(controlrow);
         }
         Lb_controlcount.Text             = controltb.Rows.Count.ToString();//控件总数
         DGV_CustomControlList.DataSource = controltb;
         return(controltb);
     }
     return(null);
 }
Beispiel #2
0
        /// <summary>
        /// 生成模板
        /// </summary>
        /// <param name="editdoc">XML模板</param>
        private void InitCustomConfig(XmlDocument editdoc)
        {
            //模板底图
            Image img = EditTemplateInfo.GetEditImg(Editname);

            P_bgimg.Size            = new Size(img.Width, img.Height);
            P_bgimg.BackgroundImage = img;
            //模板中的控件
            P_bgimg.Controls.Clear();//清空模板控件
            //项模板
            foreach (XmlNode item in editdoc.DocumentElement.ChildNodes[4])
            {
                //属性项目|TabIndex索引
                int tabindex = Convert.ToInt32(EditTemplateMethod.GetXmlNodeTextInt(item.SelectSingleNode("TAB_INDEX"), "0"));
                //中文名
                string cname = EditTemplateMethod.GetXmlNodeText(item.SelectSingleNode("ITEM_CNAME"));
                //英文名
                string ename = EditTemplateMethod.GetXmlNodeText(item.SelectSingleNode("ITEM_ENAME"));
                //控件大小
                Size size = new Size(Convert.ToInt32(EditTemplateMethod.GetXmlNodeText(item.SelectSingleNode("ITEM_WIDTH"))), Convert.ToInt32(EditTemplateMethod.GetXmlNodeText(item.SelectSingleNode("ITEM_HEIGHT"))));
                //停靠在模板中的位置
                Point location = new Point(Convert.ToInt32(EditTemplateMethod.GetXmlNodeText(item.SelectSingleNode("POS_X"))), Convert.ToInt32(EditTemplateMethod.GetXmlNodeText(item.SelectSingleNode("POS_Y"))));
                //是否多行文本
                EditControlIsOrMultiline multiline = EditControlIsOrMultiline.FalseMultiline;
                if ((Convert.ToInt32(EditTemplateMethod.GetXmlNodeText(item.SelectSingleNode("MULTILINE"))) == 1))
                {
                    multiline = EditControlIsOrMultiline.TrueMultiline;
                }
                //是否自动换行
                EditControlIsOrWrap wrap = EditControlIsOrWrap.FalseWrap;
                if ((Convert.ToInt32(EditTemplateMethod.GetXmlNodeText(item.SelectSingleNode("WORD_WRAP"))) == 1))
                {
                    wrap = EditControlIsOrWrap.TrueWrap;
                }
                //默认控件类型为TextBoxText
                EditControlTypeInfo edittype = EditControlTypeInfo.TextBoxText;
                switch (EditTemplateMethod.GetXmlNodeText(item.SelectSingleNode("ITEM_TYPE")))
                {
                case "RichTextBox": edittype = EditControlTypeInfo.RichTextBox;
                    break;

                case "TextBoxText": edittype = EditControlTypeInfo.TextBoxText;
                    break;

                case "TextBoxNumber": edittype = EditControlTypeInfo.TextBoxNumber;
                    break;

                case "DateTimePicker": edittype = EditControlTypeInfo.DateTimePicker;
                    break;

                case "PictureBox": edittype = EditControlTypeInfo.PictureBox;
                    break;

                case "CheckBox": edittype = EditControlTypeInfo.CheckBox;
                    break;

                case "TextBoxLong": edittype = EditControlTypeInfo.TextBoxLong;
                    break;
                }
                CreateCustomControl(tabindex, cname, ename, size, location, multiline, wrap, edittype, BorderStyle.FixedSingle, true, ScrollBars.Both, RichTextBoxScrollBars.Both);
            }
        }