| | |
| | | using DevExpress.XtraGrid.Columns; |
| | | using DevExpress.Utils.DirectXPaint; |
| | | using DevExpress.XtraEditors; |
| | | using DevExpress.XtraEditors.TextEditController; |
| | | using DevExpress.XtraGrid.Columns; |
| | | using DevExpress.XtraGrid.Views.Grid; |
| | | using DevExpress.XtraLayout; |
| | | using Gs.DevApp.DevFrm.QC.Models; |
| | | using Gs.DevApp.ToolBox; |
| | | using Newtonsoft.Json; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.IO; |
| | | using System.Text; |
| | | using System.Windows.Forms; |
| | | |
| | | namespace Gs.DevApp.UserControl |
| | |
| | | { |
| | | string formNamespace = ""; |
| | | List<GridView> gridViews = new List<GridView>(); |
| | | public showLayOut(string _formNamespace, List<GridView> _gridViews) |
| | | List<DevExpress.XtraLayout.LayoutControl> layList = new List<DevExpress.XtraLayout.LayoutControl>(); |
| | | List<DevExpress.XtraEditors.SplitContainerControl> spcList = new List<DevExpress.XtraEditors.SplitContainerControl>(); |
| | | public showLayOut(string _formNamespace, List<GridView> _gridViews, List<DevExpress.XtraLayout.LayoutControl> _layList, List<DevExpress.XtraEditors.SplitContainerControl> _spcList) |
| | | { |
| | | formNamespace = _formNamespace; |
| | | gridViews = _gridViews; |
| | | layList = _layList; |
| | | spcList = _spcList; |
| | | InitializeComponent(); |
| | | this.btnCancel.Click += BtnCancel_Click; |
| | | this.btnSave.Click += BtnSave_Click; |
| | | |
| | | } |
| | | private void BtnSave_Click(object sender, EventArgs e) |
| | | { |
| | |
| | | Close(); |
| | | } |
| | | |
| | | |
| | | private void _setLyout() |
| | | { |
| | | // --col1,100,101,102,103,104,105,1,title&col2,100,101,102,103,104,105,1,title |
| | | if (txt_layOut.SelectedIndex <= 0) |
| | | { |
| | | MsgHelper.Warning("请选择适用范围!"); |
| | | return; |
| | | } |
| | | |
| | | System.Text.StringBuilder sb = new System.Text.StringBuilder(); |
| | | List<dynamic> xmlList = new List<dynamic>(); |
| | | foreach (GridView gridView1 in gridViews) |
| | | { |
| | | foreach (GridColumn column in gridView1.Columns) |
| | | System.IO.Stream stream = new System.IO.MemoryStream(); |
| | | gridView1.SaveLayoutToStream(stream); |
| | | stream.Seek(0, System.IO.SeekOrigin.Begin); |
| | | StringBuilder sb = new StringBuilder(); |
| | | using (StreamReader reader = new StreamReader(stream)) |
| | | { |
| | | string controlId = column.Name; |
| | | int controlPosX = 0; |
| | | int controlPosY = 0; |
| | | int controlWidth = 0; |
| | | int controlMinWidth = column.MinWidth; |
| | | int controlMaxWidth = column.MaxWidth; |
| | | int controlHeight = 0; |
| | | int controlVisible = column.Visible == true ? 1 : 0; |
| | | string controlTitle = string.IsNullOrEmpty(column.Caption.Trim()) ? "未定义" : column.Caption.Trim(); |
| | | int controlIdx = column.VisibleIndex; |
| | | if (sb.Length > 0) |
| | | sb.Append("&"); |
| | | sb.Append(controlId); |
| | | sb.Append(","); |
| | | sb.Append(controlPosX); |
| | | sb.Append(","); |
| | | sb.Append(controlPosY); |
| | | sb.Append(","); |
| | | sb.Append(controlWidth); |
| | | sb.Append(","); |
| | | sb.Append(controlMinWidth); |
| | | sb.Append(","); |
| | | sb.Append(controlMaxWidth); |
| | | sb.Append(","); |
| | | sb.Append(controlHeight); |
| | | sb.Append(","); |
| | | sb.Append(controlVisible); |
| | | sb.Append(","); |
| | | sb.Append(controlTitle); |
| | | sb.Append(","); |
| | | sb.Append(controlIdx); |
| | | char[] buffer = new char[4096]; // 缓冲区大小根据需要调整 |
| | | int numCharsRead; |
| | | while ((numCharsRead = reader.Read(buffer, 0, buffer.Length)) > 0) |
| | | { |
| | | sb.Append(buffer, 0, numCharsRead); |
| | | } |
| | | } |
| | | xmlList.Add( |
| | | new { idType = "gridview", idName = gridView1.Name, idXml = sb.ToString(), splitterPosition="" } |
| | | ); |
| | | } |
| | | foreach (LayoutControl lay1 in layList) |
| | | { |
| | | System.IO.Stream stream = new System.IO.MemoryStream(); |
| | | lay1.SaveLayoutToStream(stream); |
| | | stream.Seek(0, System.IO.SeekOrigin.Begin); |
| | | StringBuilder sb = new StringBuilder(); |
| | | using (StreamReader reader = new StreamReader(stream)) |
| | | { |
| | | char[] buffer = new char[4096]; // 缓冲区大小根据需要调整 |
| | | int numCharsRead; |
| | | while ((numCharsRead = reader.Read(buffer, 0, buffer.Length)) > 0) |
| | | { |
| | | sb.Append(buffer, 0, numCharsRead); |
| | | } |
| | | } |
| | | xmlList.Add( |
| | | new { idType = "layoutcontrol ", idName = lay1.Name, idXml = sb.ToString(), splitterPosition="" } |
| | | ); |
| | | } |
| | | foreach (SplitContainerControl splt in spcList) |
| | | { |
| | | System.IO.Stream stream = new System.IO.MemoryStream(); |
| | | splt.SaveLayoutToStream(stream); |
| | | stream.Seek(0, System.IO.SeekOrigin.Begin); |
| | | StringBuilder sb = new StringBuilder(); |
| | | using (StreamReader reader = new StreamReader(stream)) |
| | | { |
| | | char[] buffer = new char[4096]; // 缓冲区大小根据需要调整 |
| | | int numCharsRead; |
| | | while ((numCharsRead = reader.Read(buffer, 0, buffer.Length)) > 0) |
| | | { |
| | | sb.Append(buffer, 0, numCharsRead); |
| | | } |
| | | } |
| | | xmlList.Add( |
| | | new { idType = "splitcontainercontrol ", idName = splt.Name, idXml = sb.ToString(), splitterPosition= splt.SplitterPosition } |
| | | ); |
| | | } |
| | | var _obj = new |
| | | { |
| | | layoutLst = sb.ToString(), |
| | | xmlList = xmlList, |
| | | formPath = formNamespace, |
| | | intType = txt_layOut.SelectedIndex, |
| | | }; |