Настройка 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
Они не сериализуемы, поэтому они не могут быть найдены в настройках приложения.
Вот оно, теперь в форме ответа. Я искал ответ на ту же проблему, и вы правы, для меня это тоже была трата времени.