/// <summary> /// 加载表格的模板 /// </summary> /// <param name="node">节点</param> public static void GridTemplate(FCGrid grid, UIXmlEx xml, XmlNode node) { XmlDocument xmlDoc = node.OwnerDocument; grid.Size = new FCSize(200, 200); FCGridColumn column = new FCGridColumn("Column1"); grid.addColumn(column); FCGridColumn column2 = new FCGridColumn("Column2"); grid.addColumn(column2); grid.update(); FCGridRow row = new FCGridRow(); grid.addRow(row); FCGridStringCell cell = new FCGridStringCell(); cell.setString("Cell1"); row.addCell(0, cell); FCGridStringCell cell2 = new FCGridStringCell(); cell2.setString("Cell2"); row.addCell(1, cell2); grid.update(); XmlNode columnsNode = xmlDoc.CreateNode(XmlNodeType.Element, "tr", ""); node.AppendChild(columnsNode); XmlNode column1Node = xmlDoc.CreateNode(XmlNodeType.Element, "th", ""); column1Node.InnerText = "Column1"; columnsNode.AppendChild(column1Node); XmlNode column2Node = xmlDoc.CreateNode(XmlNodeType.Element, "th", ""); column2Node.InnerText = "Column2"; columnsNode.AppendChild(column2Node); XmlNode rowNode = xmlDoc.CreateNode(XmlNodeType.Element, "tr", ""); node.AppendChild(rowNode); XmlNode cellNode1 = xmlDoc.CreateNode(XmlNodeType.Element, "td", ""); rowNode.AppendChild(cellNode1); cellNode1.InnerText = "Cell1"; XmlNode cellNode2 = xmlDoc.CreateNode(XmlNodeType.Element, "td", ""); rowNode.AppendChild(cellNode2); cellNode2.InnerText = "Cell2"; }
/// <summary> /// 添加控件方法 /// </summary> public override void onLoad() { base.onLoad(); if (m_grid == null) { m_grid = new FCGrid(); m_grid.AutoEllipsis = true; m_grid.GridLineColor = FCColor.None; m_grid.Size = new FCSize(240, 200); m_grid.addEvent(m_gridCellClickEvent, FCEventID.GRIDCELLCLICK); m_grid.addEvent(m_gridKeyDownEvent, FCEventID.KEYDOWN); addControl(m_grid); m_grid.beginUpdate(); //添加列 FCGridColumn securityCodeColumn = new FCGridColumn("股票代码"); securityCodeColumn.BackColor = FCDraw.FCCOLORS_BACKCOLOR; securityCodeColumn.BorderColor = FCColor.None; securityCodeColumn.Font = new FCFont("Simsun", 14, true, false, false); securityCodeColumn.TextColor = FCDraw.FCCOLORS_FORECOLOR; securityCodeColumn.TextAlign = FCContentAlignment.MiddleLeft; securityCodeColumn.Width = 120; m_grid.addColumn(securityCodeColumn); FCGridColumn securityNameColumn = new FCGridColumn("股票名称"); securityNameColumn.BackColor = FCDraw.FCCOLORS_BACKCOLOR; securityNameColumn.BorderColor = FCColor.None; securityNameColumn.Font = new FCFont("Simsun", 14, true, false, false); securityNameColumn.TextColor = FCDraw.FCCOLORS_FORECOLOR; securityNameColumn.TextAlign = FCContentAlignment.MiddleLeft; securityNameColumn.Width = 110; m_grid.addColumn(securityNameColumn); m_grid.endUpdate(); } if (m_searchTextBox == null) { m_searchTextBox = new FCTextBox(); m_searchTextBox.Location = new FCPoint(0, 200); m_searchTextBox.Size = new FCSize(240, 20); m_searchTextBox.Font = new FCFont("SimSun", 16, true, false, false); m_searchTextBox.addEvent(m_textBoxInputChangedEvent, FCEventID.TEXTCHANGED); m_searchTextBox.addEvent(m_textBoxKeyDownEvent, FCEventID.KEYDOWN); addControl(m_searchTextBox); } }
/// <summary> /// 创建表格列 /// </summary> /// <param name="node">节点</param> /// <param name="control">控件</param> protected virtual void createGridColumns(XmlNode node, FCView control) { FCGrid grid = control as FCGrid; foreach (XmlNode subNode in node.ChildNodes) { FCView subControl = createControl(subNode, subNode.Name.ToLower()); FCGridColumn column = subControl as FCGridColumn; if (column != null) { column.Native = m_native; grid.addColumn(column); } setAttributesBefore(subNode, subControl); readChildNodes(subNode, subControl); setAttributesAfter(subNode, subControl); if (subNode.InnerText.Length > 0) { column.Text = subNode.InnerText; } onAddControl(subControl, subNode); } }
/// <summary> /// 添加类 /// </summary> public void addClass() { XmlDocument xmlDoc = m_xml.XmlDoc; if (m_collectionName == "TabPages") { FCTabControl tabControl = m_target as FCTabControl; FCTabPage tabPage = new FCTabPage(); tabControl.addControl(tabPage); String newControlName = UITemplate.CreateControlName(tabPage, m_xml); tabPage.Name = newControlName; tabPage.Text = newControlName; XmlNode tabControlNode = m_xml.Nodes[tabControl]; XmlNode tabpageNode = m_xml.XmlDoc.CreateNode(XmlNodeType.Element, "div", ""); tabControlNode.AppendChild(tabpageNode); XmlAttribute xmlAtr1 = xmlDoc.CreateAttribute("name"); xmlAtr1.Value = tabPage.Text; tabpageNode.Attributes.Append(xmlAtr1); XmlAttribute xmlAtr2 = xmlDoc.CreateAttribute("text"); xmlAtr2.Value = tabPage.Text; tabpageNode.Attributes.Append(xmlAtr2); XmlAttribute xmlAtr3 = xmlDoc.CreateAttribute("type"); xmlAtr3.Value = "tabpage"; tabpageNode.Attributes.Append(xmlAtr3); m_xml.m_controls.Add(tabPage); m_xml.Nodes[tabPage] = tabpageNode; FCTreeNode node = new FCTreeNode(); node.setString(tabPage.Name); m_tvCollection.appendNode(node); node.Row.Tag = tabPage; m_tvCollection.update(); m_tvCollection.selectNextRow(); tabControl.update(); } else if (m_collectionName == "Columns") { FCGrid grid = m_target as FCGrid; FCGridColumn column = new FCGridColumn(); grid.addColumn(column); String newControlName = UITemplate.CreateControlName(column, m_xml); column.Name = newControlName; column.Text = newControlName; XmlNode gridNode = m_xml.Nodes[grid]; XmlNode columnsNode = null; foreach (XmlNode subNode in gridNode.ChildNodes) { if (subNode.Name.ToLower() == "columns" || subNode.Name.ToLower() == "tr") { columnsNode = subNode; break; } } if (columnsNode == null) { columnsNode = xmlDoc.CreateNode(XmlNodeType.Element, "tr", ""); gridNode.AppendChild(columnsNode); } XmlNode columnNode = m_xml.XmlDoc.CreateNode(XmlNodeType.Element, "th", ""); columnNode.InnerText = column.Text; columnsNode.AppendChild(columnNode); XmlAttribute xmlAtr1 = xmlDoc.CreateAttribute("name"); xmlAtr1.Value = column.Text; columnNode.Attributes.Append(xmlAtr1); m_xml.m_controls.Add(column); m_xml.Nodes[column] = columnNode; FCTreeNode node = new FCTreeNode(); node.setString(column.Name); m_tvCollection.appendNode(node); node.Row.Tag = column; grid.update(); } m_tvCollection.update(); m_tvCollection.selectNextRow(); Native.invalidate(); m_designerDiv.saveUndo(); }