ich das wissen Antwort kommt sehr spät, aber vielleicht hilft es jemandem in Not.
Was ich zur Arbeit gefunden - Sehr einfach und spart als Einstellungen
ich ein neues Klassenbibliotheksprojekt zu meiner Lösung hinzuzufügen gemacht und es MySettingTypes benannt. Ich habe folgende Klasse hinzugefügt.
<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
End Class
das MySettingTypes Rebuild Projekt als Referenz zu Ihrem Datagridview-Projekt hinzufügen . In dem Fenster, in dem sich Ihr Projekt befindet, können Sie den folgenden Code zum Speichern und Laden hinzufügen.
Gehen Sie zu Ihren Projekteinstellungen und fügen Sie eine neue Einstellung namens YourDGVSettingsEntry hinzu. Wenn Sie den Typ auswählen, gehen Sie zu BROWSE und suchen Sie DataGridViewColumnSetting unter 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
Es ist so einfach und habe diese Einstellungen in meine neuen Versionen importiert. Ich bin im Begriff, die Fähigkeit für den Endbenutzer hinzuzufügen, die Spaltenüberschriften nach Belieben zu benennen.
Danke Dan. Wissen Sie, wo diese Spalteneinstellungen gespeichert sind? – JimDel
Sie müssen die Datei mit den Spalteneinstellungen selbst erstellen. Ich dachte, Sie könnten vielleicht eine einfache XML-Datei erstellen, die den DisplayIndex für jede Spalte speichert.So etwas wie dies (sorry für die schlechte Formatierung): Dann könnten Sie diese Datei einfach in einem Einstellungsordner in Ihrem Projekt speichern und in die Datei lesen/schreiben erforderlich. –
devuxer