DevExpress控件GridControl中的布局详解
在进行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");
}
感谢分享~~~~~ 我觉得这个应该写到数据库里去,不然换台电脑又得重新布局 保存到数据库 加载时速度稍微慢点 本帖最后由 ssjun 于 2016-8-5 08:55 编辑
dayup126 发表于 2016-8-5 00:00
保存到数据库 加载时速度稍微慢点
可以在本地生成一数据库,在启动程序时后台自动同步服务器数据库。在运行程序时在本地提取,再使用多线程。速度会很快,变更时,程序异步后台同步本地与服务器数据库
页:
[1]