C1 FlexGrid for WinForms个性化:序列化列顺序

时间:2024-10-22 22:53:12

1、“序列化是指一个对象的实例可以被保存,保存成一个二进制串、文本串、XML、二进制加密数据等;把数据放在硬盘上。这样,关机时序列化它,开机时反序列化它。序列化概念的提出和实现,可以使我们的应用程序的设置信息保存和读取更加方便。序列化有很多好处,比如,在一台机器上产生一个实例,初始化完毕,然后可以序列化,通过网络传送到另一台机器,然后反序列化,得到对象实例,之后再执行某些业务逻辑,得到结果,再序列化,返回第一台机器,第一台机器得到对象实例,得到结果。这个例子是目前比较先进的“智能代理”的原理。 当前比较热火的web services使用soap协议,soap协议也是以对象的可序列化为基础的; 以及WCF通信原理也是通过序列化为XML、JSON字符串在网络中传送,在另外一台电脑再反序列化,还原对象。”

2、为了实现的更自动,响应了c1FlexGrid1_AfterDragColumn事件,每次当拖动列后,可触发该事件,我们进行序列化:保存为文本文件(您也可自行实现保存为二进制或者XML文件)。 1: /// <summary> 2: /// Save Layout 3: /// </summary> 4: /// <param name="sender"></param> 5: /// <param name="e"></param> 6: private void c1FlexGrid1_AfterDragColumn(object sender, C1.Win.C1FlexGrid.DragRowColEventArgs e) 7: { 8: StringBuilder sb = new StringBuilder(); 9: foreach (C1.Win.C1FlexGrid.Column item in this.c1FlexGrid1.Cols)10: {11: sb.AppendLine(item.Name);12: }13:14: File.WriteAllText(C1FlexGridLayout_file, sb.ToString());15: }

3、当程序启动后,在Form_load方法中,可通过设置各个Column的Index进行恢复: 1: /// <summary> 2: /// Load Layout 3: /// </summary> 4: /// <param name="sender"></param> 5: /// <param name="e"></param> 6: private void Form1_Load(object sender, EventArgs e) 7: { 8: LoadFile(); 9:10: for (int i = 0; i < c1FlexGrid1.Cols.Count; i++)11: {12: C1.Win.C1FlexGrid.Column item = c1FlexGrid1.Cols[i];13: int newOne = GetNewPostion(item.Name);14: if (newOne == -1 || newOne == item.Index)15: {16: continue;17: }18:19: item.Move(newOne);20: }21: }

C1 FlexGrid for WinForms个性化:序列化列顺序
© 2025 手抄报圈
信息来自网络 所有数据仅供参考
有疑问请联系站长 site.kefu@gmail.com