视频讲解地址 https://www.bilibili.com/video/BV1nY4y1V7LE
效果图
核心代码
public partial class Form1 : Form {//原创来自 www.luofenming.com public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { //读取配置信息 Dictionary<string, int> dic = JosnConfigHelper.ReadConfig<Dictionary<string, int>>(); gridControl1.DataSource = CreateDataTable(); if (dic != null) { foreach (DevExpress.XtraGrid.Columns.GridColumn g in this.gridView1.Columns) { if (dic.ContainsKey(g.Name)) { g.VisibleIndex = dic[g.Name]; } } } } /// <summary> /// 创建一个DataTable 并带有数据 /// </summary> /// <returns></returns> private DataTable CreateDataTable() {//原创来自 www.luofenming.com DataTable dt = new DataTable(); dt.Columns.Add(new DataColumn("UserName", typeof(string))); dt.Columns.Add(new DataColumn("UserQQ", typeof(string))); dt.Columns.Add(new DataColumn("UserPwd", typeof(string))); for (int i = 0; i < 15; i++) { DataRow dr = dt.NewRow(); dr["UserName"] = "lqwvje" + i; dr["UserQQ"] = "10000" + i; dr["UserPwd"] = "123456"; dt.Rows.Add(dr); } return dt; } /// <summary> /// 列位置发生变化时触发事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void gridView1_ColumnPositionChanged(object sender, EventArgs e) { Dictionary<string, int> dic = new Dictionary<string, int>(); foreach (DevExpress.XtraGrid.Columns.GridColumn g in this.gridView1.Columns) { dic[g.Name] = g.VisibleIndex; } JosnConfigHelper.WriteConfig(dic);//保存配置信息 } }
读写配置信息类
public class JosnConfigHelper { public static T ReadConfig<T>() { if (File.Exists("config.json") == false)//如果不存在就创建file文件夹 { FileStream f = File.Create("config.json"); f.Close(); } try { string s = File.ReadAllText("config.json"); return JsonConvert.DeserializeObject<T>(s); } catch { return default(T); } } public static void WriteConfig(object o) { if (File.Exists("config.json") == false)//如果不存在就创建file文件夹 { FileStream f = File.Create("config.json"); f.Close(); } string s = JsonConvert.SerializeObject(o); File.WriteAllText("config.json", s); } }