在Visual Studio中保存数据网格视图的布局(宽度,顺序)

问题描述 投票:3回答:3

我有一些数据网格视图,我希望用户能够保持对他们所做的更改。不是数据更改,只有布局更改,如宽度,高度,列的顺序以及可能的可见性。我不在乎它是自动还是点击按钮......

编辑:我找到了一种方法来使用Settings.I添加了设置文件,但我不知道我应该如何在这些设置中添加列顺序或列大小

visual-studio-2005 datagridview layout
3个回答
0
投票

我假设您的意思是最终用户,如果是这样,那么我会将该信息存储在cookie /数据库中并将其拉出来以定制他们的体验。


0
投票

在每个用于调整大小/排序的事件处理程序中,您可以使用辅助函数将布局指令写入db,registry,xml,config等存储介质......并在应用程序中读取这些指令以绘制接口负载。


0
投票

您要保存的格式信息的类型可以在DataGridGiew的各种属性中找到。你可能不得不花费一些时间与它的object model documentation,但你应该能够找到你正在寻找的大部分。

例如,要保存行的排序方式,可以保留这两个属性:

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;

我能记得的唯一警告是,一些DataGridView属性值不能直接保存为字符串(请记住,您的用户设置最终保存为XML),但这实际上取决于您要保存的设置类型。

© www.soinside.com 2019 - 2024. All rights reserved.