Я не уверен, является ли это ошибкой, «функцией» или я делаю что-то неправильно, но я пытаюсь сохранить DataGridViewCellStyle
в качестве пользовательской настройки в приложении Windows Forms, закодированном в VB.NET. Я могу правильно сохранить и загрузить другие настройки, но не DataGridViewCellStyles.
Я зашел так далеко, что создал новое приложение для проверки этого, и у меня та же проблема:
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
My.Settings.UserDGVCellStyle = New DataGridViewCellStyle
My.Settings.UserDGVCellStyle.Font = New Drawing.Font("Times New Roman", 14, FontStyle.Italic)
My.Settings.UserDGVCellStyle.BackColor = Color.Azure
My.Settings.UserFont = New Drawing.Font("Times New Roman", 13, FontStyle.Italic)
My.Settings.UserBackgroundColor = Color.Black
End Sub
Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
My.Settings.Save()
End Sub
End Class
Я поставил код-брейк на первую и последнюю строки. Настройки My.Settings.UserbackgroundColor
и My.Settings.UserFont
сохраняются при закрытии и повторном открытии приложения, но My.Settings.UserDGVCellStyle
всегда отображается как «ничего» при перезапуске приложения (даже если оно отображается как
"{DataGridViewCellStyle { BackColor=Color [Azure], Font=[Font: Name=Times New Roman, Size=14, Units=3, GdiCharSet=1, GdiVerticalFont=False] }}"
во время строки My.Settings.Save()).
Я понимаю, что вместо того, чтобы пытаться сохранить DataGridViewCellStyle, я мог бы заменить его набором отдельных настроек (например, шрифт, фоновый цвет, выравнивание и т. д.), но я бы предпочел не нужно сделать это много раз для моего приложения.
В (потенциально) связанной заметке я помню, что у меня была эта проблема при сохранении DataTable, но как только я заполнил DataTable.TableName, таблица успешно сохранилась.