Я знаю, что этот ответ приходит очень поздно, но, возможно, он поможет кому-то нуждающемуся.
То, что я нашел для работы - Очень просто и сохраняет как настройки
Я сделал новый проект библиотеки классов для добавления в мое решение и назвал его MySettingTypes.
Я добавил следующий класс.
<Serializable()> Public Class DataGridViewColumnSetting
Property ColumnNames As List(Of String)
Property ColumnDisplayIndex As List(Of Integer)
Property ColumnVisiblility As List(Of Boolean)
Property ColumnSize As List(Of Integer)
Public Sub New()
ColumnDisplayIndex = New List(Of Integer)
ColumnNames = New List(Of String)
ColumnSize = New List(Of Integer)
ColumnVisiblility = New List(Of Boolean)
End Sub
Конечный класс
Перестройте проект MySettingTypes
добавьте его в качестве ссылки на ваш проект DatagridView.
В окне, в котором находится ваш проект, вы можете добавить следующий код для сохранения и загрузки.
Перейдите в настройки своих проектов и добавьте новый параметр с именем YourDGVSettingsEntry.
При выборе типа перейдите к BROWSE и найдите DataGridViewColumnSetting в MySettingTypes.
Private Sub loadSettings()
If Not IsNothing(My.Settings.YourDGVSettingsEntry) Then
Dim s As MySettingTypes.DataGridViewColumnSetting = My.Settings.YourDGVSettingsEntry
Dim pos As Integer = 0
For Each ColumnName As String In s.ColumnNames
Try
Me.YourDataGridView.Columns(ColumnName).DisplayIndex = s.ColumnDisplayIndex(pos)
Me.YourDataGridView.Columns(ColumnName).Width = s.ColumnSize(pos)
Me.YourDataGridView.Columns(ColumnName).Visible = s.ColumnVisiblility(pos)
Catch ex As Exception
End Try
pos = pos + 1
Next
Else
My.Settings.YourDGVSettingsEntry = New MySettingTypes.DataGridViewColumnSetting
Me.saveSettings()
End If
End Sub
Private Sub saveSettings()
Dim x As New MySettingTypes.DataGridViewColumnSetting
For Each c As DataGridViewColumn In YourDataGridView.Columns
x.ColumnNames.Add(c.Name)
x.ColumnDisplayIndex.Add(c.DisplayIndex)
x.ColumnSize.Add(c.Width)
x.ColumnVisiblility.Add(c.Visible)
My.Settings.YourDGVsettingsEntry = x
My.Settings.Save()
Next
End Sub
Private Sub yourDGVForm_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
'txtResultsCount.Text = "Saving settings"
saveSettings()
End Sub
Private Sub yourDGVForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' myparent = Me.MdiParent
loadSettings()
'Setup()
End Sub
Это так просто, и я импортировал эти настройки в мои новые выпуски. Я собираюсь добавить
конечному пользователю предоставляется возможность произвольно именовать заголовки столбцов по своему усмотрению.