开发者论坛

 找回密码
 注册 (请使用非IE浏览器)
查看: 4879|回复: 4

DevExpress控件GridControl中的布局详解

[复制链接]

0

精华

5

贡献

16

赞扬

帖子
20
软币
212
在线时间
31 小时
注册时间
2013-10-25
发表于 2013-11-1 21:42:32 | 显示全部楼层 |阅读模式
在进行DevExpress控件GridControl的使用时,因控件的灵活性,所以用户会经常进行拖动控件的列,以达到自己满意的样式,

但下次再打开时系统就会重新还原到原有的布局风格,为了能够保持用户之前设置的风格,下次再打开时依然保持原有的风格。

在gridView中有两个方法:SaveLayoutToXml(保存布局),RestoreLayoutFromXml(恢复布局)

以下是具体的代码:


        private string systempath = "C:\\Program Files\\";
        /// <summary>
        /// 保存风格
        /// </summary>
        /// <param name="moduleid"></param>
        /// <param name="saveType"></param>
        private void SaveLayout(string moduleid, string saveType)
        {
            string path = systempath + "窗体风格\\" + moduleid+"\\";
            string file = saveType + "view.xml";
            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }
           m_gridView.SaveLayoutToXml(path+file);
        }
        /// <summary>
        /// 加载风格
        /// </summary>
        /// <param name="moduleid"></param>
        /// <param name="saveType"></param>
        private void LoadLayout(string moduleid, string saveType)
        {
            string path = systempath + "窗体风格\\" + moduleid + "\\";
            string file = saveType + "view.xml";
            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }
            if (!File.Exists(path + file))
                return;
            m_gridView.RestoreLayoutFromXml(path + file);
        }
        /// <summary>
        /// 布局变化时产生事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void m_gridView_Layout(object sender, EventArgs e)
        {
            SaveLayout(m_controlManager.Owner.ModuleId, "Master");
        }

        /// <summary>
        /// gridcontrol load Event
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
        private void m_gridControl_Load(object sender, EventArgs e)
        {
            SaveLayout(m_controlManager.Owner.ModuleId, "Default");

            LoadLayout(m_controlManager.Owner.ModuleId, "Master");
        }
回复

使用道具 举报

0

精华

126

贡献

27

赞扬

帖子
101
软币
1621
在线时间
71 小时
注册时间
2013-6-9
发表于 2013-12-6 10:38:38 | 显示全部楼层
我觉得这个应该写到数据库里去,不然换台电脑又得重新布局
回复

使用道具 举报

0

精华

0

贡献

0

赞扬

帖子
8
软币
69
在线时间
0 小时
注册时间
2016-8-4
发表于 2016-8-5 00:00:51 | 显示全部楼层
保存到数据库 加载时速度稍微慢点
回复

使用道具 举报

0

精华

730

贡献

2970

赞扬

正版授权组

Rank: 14Rank: 14Rank: 14Rank: 14

帖子
413
软币
15959
在线时间
2991 小时
注册时间
2013-6-8

饮水勋章神经正常武林秘籍

发表于 2016-8-5 08:53:18 | 显示全部楼层
本帖最后由 ssjun 于 2016-8-5 08:55 编辑
dayup126 发表于 2016-8-5 00:00
保存到数据库 加载时速度稍微慢点

可以在本地生成一数据库,在启动程序时后台自动同步服务器数据库。在运行程序时在本地提取,再使用多线程。速度会很快,变更时,程序异步后台同步本地与服务器数据库
回复

使用道具 举报

Archiver|手机版|小黑屋|开发者网 ( 苏ICP备08004430号-2 )
版权所有:南京韵文教育信息咨询有限公司

GMT+8, 2024-12-23 10:59

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表