Настройка DataGridViewCellStyle в пользовательской области Visual Studio не сохраняется

Я не уверен, что это ошибка, "фича" или я что-то делаю неправильно, но я пытаюсь сохранить 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: Name=Times New Roman, размер =14, Units=3, GdiCharSet=1, GdiVerticalFont=False] }}"

в строке My.Settings.Save()).

Я понимаю, что вместо того, чтобы пытаться сохранить DataGridViewCellStyle, я мог бы заменить его набором отдельных настроек (например, Font, BackColor, Alignment и т. Д.), Но я бы предпочел этого не делать, так как я придется сделать это много раз для моего приложения.

На (потенциально) связанной заметке я помню эту проблему при сохранении DataTable, но как только я заполнил DataTable.TableName, таблица успешно сохранилась.

1 ответ

Решение

DataGridViewCellStyleОни не сериализуемы, поэтому они не могут быть найдены в настройках приложения.

Вот оно, теперь в форме ответа. Я искал ответ на ту же проблему, и вы правы, для меня это тоже была трата времени.

Другие вопросы по тегам