视频讲解地址 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);
}
}