我有一些数据网格视图,希望用户能够保留他所做的更改。不是数据更改,而只是布局更改,例如宽度、高度、列的顺序和可能的可见性。我不关心它是自动完成还是通过点击按钮...
编辑:我找到了一种使用设置来实现此功能的方法。我已经添加了设置文件,但我不知道如何在这些设置中添加列顺序或列大小。
我有一些数据网格视图,希望用户能够保留他所做的更改。不是数据更改,而只是布局更改,例如宽度、高度、列的顺序和可能的可见性。我不关心它是自动完成还是通过点击按钮...
编辑:我找到了一种使用设置来实现此功能的方法。我已经添加了设置文件,但我不知道如何在这些设置中添加列顺序或列大小。
你想要保存的格式信息可以在DataGridView的各种属性中找到。你可能需要花一些时间阅读它的对象模型文档,但你应该能够找到大部分你要寻找的内容。
例如,要保存行排序的方式,你可以持久化这两个属性:
DataGridView.SortedColumn 告诉你按哪一列的值对行进行了排序。 DataGridView.SortOrder 告诉你排序的顺序(即升序或降序)
关于列宽和顺序的信息,你应该能够在DataGridView.Columns集合的成员中找到。
我认为是否一次性记录这些值(例如,点击“保存设置”按钮)或在事件处理程序中逐个记录属性更改是一个偏好问题。 我喜欢在用户没有任何操作关闭表单时自动保存它们。 距离我最后实现类似的功能已经有一段时间了,但我记得应用程序设置是保存此类信息的非常方便的地方。 在“项目属性设置设计器”中,只需为要保留的内容定义设置(确保将范围设置为“用户”)。 然后在运行时在您的代码中分配和加载实际值,如下所示:
// e.g. you defined an integer user setting at design time called ColA_Width, to
// hold the value of the width of "ColA" in your DataGridView.
// Use this code to save the value (either in a specific event handler, or a
// global "save settings" routine).
Properties.Settings.Default.ColA_Width = MyDataGridViewInstance.Columns["ColA"].Width;
Properties.SEttings.Default.Save();
// Then you'd reverse the assignments when the app next loads so that the saved
// settings are "remembered" between user sessions.
MyDataGridViewInstance.Columns["ColA"].Width = Properties.Settings.Default.ColA_Width;
我假设你指的是最终用户,如果是这样,那么我会将该信息存储在cookie/数据库中,并在加载时提取它以定制他们的体验。