lu
2025-02-28 5b419c5a4fd892b1777e8c5ac584bf2df3cbbb3e
DevApp/Gs.DevApp/UserControl/showLayOut.cs
@@ -1,14 +1,16 @@
using DevExpress.XtraEditors;
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.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.IO;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Gs.DevApp.UserControl
@@ -16,26 +18,99 @@
    public partial class showLayOut : DevExpress.XtraEditors.XtraForm
    {
        string formNamespace = "";
        public showLayOut(string _formNamespace)
        List<GridView> gridViews = new List<GridView>();
        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;
            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)
        {
            _setLyout();
        }
        private void BtnCancel_Click(object sender, EventArgs e)
        {
            Close();
        }
        private void _setLyout()
        {
            if (txt_layOut.SelectedIndex <= 0)
            {
                MsgHelper.Warning("请选择适用范围!");
                return;
            }
            List<dynamic> xmlList = new List<dynamic>();
            foreach (GridView gridView1 in gridViews)
            {
                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))
                {
                    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
            {
                applyUserGuid = txt_layOut.SelectedIndex,
                layoutLst= "col1,100,101,102,103,104,105,1,title&gridview1=col2,100,101,102,103,104,105,1,title",
                formPath = formNamespace
                xmlList = xmlList,
                formPath = formNamespace,
                intType = txt_layOut.SelectedIndex,
            };
            try
            {
@@ -58,11 +133,6 @@
                DialogResult = DialogResult.Cancel;
                MsgHelper.Warning("提示:" + ex.Message);
            }
        }
        private void BtnCancel_Click(object sender, EventArgs e)
        {
            Close();
        }
    }
}