DevExpress Universal Subscription
DevExpress WinForms Subscription
DevExpress WPF Subscription
DevExtreme跨平台开发框架
DevExpress VCL Controls
.NET开发框架eXpressApp Framework(XAF)
DevExpress学院
中文文档库
private void GridView1_ColumnWidthChanged(object sender, DevExpress.XtraGrid.Views.Base.ColumnEventArgs e)
//如果不设置,默认不处理
if (!this.EnableColumnsSetting) return;
GridViewHelper.SaveColumnSetting(this.gridView1, this.ParentForm?.Name);
/// </summary>
/// <param name="settings">当前设置信息</param>
/// <param name="gridViewName">视图名称</param>
/// <param name="parentFormName">父类窗体名称,用于区分</param>
public static void SaveColumnSetting(GridColumnSetting settings, string gridViewName, string parentFormName)
if (settings != null)
var folderPath = $"{Environment.CurrentDirectory}/ColumnSetting";
var filePath = $"{folderPath}/{parentFormName}.{gridViewName}.setting";
// 检查文件夹是否存在
if (!Directory.Exists(folderPath))
Directory.CreateDirectory(folderPath);
using (var stream = new FileStream(filePath, FileMode.Create))
var formatter = new BinaryFormatter();
formatter.Serialize(stream, settings);
// 绑定 ListBoxControl 控件的事件,实现拖拉处理
listBoxControl.DragDrop += ListBoxControl_DragDrop;
listBoxControl.DragOver += ListBoxControl_DragOver;
listBoxControl.MouseDown += ListBoxControl_MouseDown;
/// </summary>
/// <param name="gridView">当前视图</param>
/// <param name="parentFormName">父类窗体名称,用于区分</param>
/// <returns></returns>
public static GridColumnSetting GetSettings(GridView gridView, string parentFormName)
var folderPath = $"{Environment.CurrentDirectory}/ColumnSetting";
var filePath = $"{folderPath}/{parentFormName}.{gridView.Name}.setting";
if (!File.Exists(filePath)) return null;
//反序列化
GridColumnSetting settings = null;
using (FileStream stream = new FileStream(filePath, FileMode.Open))
var formatter = new BinaryFormatter();
settings = (GridColumnSetting)formatter.Deserialize(stream);
return settings;
var visibleSb = new StringBuilder();
int index = 0;
foreach (var objItem in this.listBoxControl.Items)
var item = objItem as CListItem;
if (item != null)
var checkState = this.listBoxControl.GetItemChecked(index);
if (checkState)
var column = this.GridView.Columns.ColumnByFieldName(item.Value);
if (column != null)
sb.Append($"{item.Value}:{column.Width},");
visibleSb.Append($"{item.Value},");
index++;
var columnsWidth = sb.ToString().Trim(',');
var columnsVisbile = visibleSb.ToString().Trim(',');
var settings = new GridColumnSetting(columnsWidth, columnsVisbile);
//如果不设置,默认不处理
GridViewHelper.SaveColumnSetting(settings, this.GridView.Name, this.Owner?.Name);
本站文章除注明转载外,均为本站原创或翻译
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:DevExpress控件中文网 [https://www.devexpresscn.com/]
本文地址:https://www.devexpresscn.com/post/3786.html
相关产品:
DevExpress Universal Subscription,