Common.cs 2.8 KB
using OnlineStore.Common;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.ExceptionServices;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace TheMachine
{
    class Common
    {
        public static void StateListViewSet(ListView stateViewL)
        {
            stateViewL.View = View.Details;
            ColumnHeader c1 = new ColumnHeader();
            c1.Text = "";
            c1.Width = 0;
            ColumnHeader c2 = new ColumnHeader();
            c2.Text = "模块";
            c2.Width = 120;
            ColumnHeader c3 = new ColumnHeader();
            c3.Text = "步骤";
            c3.Width = 120;
            ColumnHeader c4 = new ColumnHeader();
            c4.Text = "信息";
            c4.Width = 370;

            stateViewL.Columns.Add(c1);
            stateViewL.Columns.Add(c2);
            stateViewL.Columns.Add(c3);
            stateViewL.Columns.Add(c4);
            //stateViewL.ColumnWidthChanging += StateViewL_ColumnWidthChanging; ;
        }
        public static void AlertListViewSet(ListView listViewL)
        {
            listViewL.View = View.Details;
            ColumnHeader emptycol = new ColumnHeader();
            emptycol.Text = "";
            emptycol.Width = 0;
            ColumnHeader msgcol = new ColumnHeader();
            msgcol.Text = "信息";
            msgcol.Width = 480;
            ColumnHeader timecol = new ColumnHeader();
            timecol.Text = "时间";
            timecol.Width = 100;
            listViewL.Columns.Add(emptycol);
            listViewL.Columns.Add(timecol);
            listViewL.Columns.Add(msgcol);
            //listViewL.ColumnWidthChanging += StateViewL_ColumnWidthChanging;
        }
        private static void StateViewL_ColumnWidthChanging(object sender, ColumnWidthChangingEventArgs e)
        {
            e.NewWidth = (sender as ListView).Columns[e.ColumnIndex].Width;
            e.Cancel = true;
        }


        [HandleProcessCorruptedStateExceptions]
        public static T DeepClone<T>(T _object)
        {
            try
            {
                T dstobject;
                using (MemoryStream mStream = new MemoryStream())
                {
                    BinaryFormatter bf = new BinaryFormatter();
                    bf.Serialize(mStream, _object);
                    mStream.Seek(0, SeekOrigin.Begin);//指定当前流的位置为流的开头。
                    dstobject = (T)bf.Deserialize(mStream);
                    mStream.Close();
                }
                return dstobject;
            }
            catch (Exception e)
            {
                LogUtil.info("GetStringCenterA" + e.ToString());
                return default;
            }
        }

    }
}