叹息...我有一个具有事件属性的类。当属性值发生变化时触发该事件。类的实例是表单信息的支持者。我需要保存表格中的信息以供以后调用。
这里的想法是将属性作为数据源绑定到表单上的文本框和 datagridview。那是当类的值发生变化时更新文本框或数据网格视图的事件的驱动程序。
所以......当我使用以下代码保存静态变量(测试)的文件时,它可以正常工作:
Dim test As String = "Hello"
' Persist to file
Dim save As New SaveFileDialog
If save.ShowDialog = Windows.Forms.DialogResult.OK Then
Dim stream As FileStream = File.Create(save.FileName)
Dim formatter As New BinaryFormatter()
formatter.Serialize(stream, test)
stream.Close()
End If
如果我使用支持数据的类的实例尝试它,它会抛出错误,因为该类有事件:
Dim test As new ClassWithEvents()
' Persist to file
Dim save As New SaveFileDialog
If save.ShowDialog = Windows.Forms.DialogResult.OK Then
Dim stream As FileStream = File.Create(save.FileName)
Dim formatter As New BinaryFormatter()
formatter.Serialize(stream, test)
stream.Close()
End If
错误:
在程序集“System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”中键入“System.Windows.Forms.Form”未标记为可序列化。
我真正想做的就是将控件的值保留在表单上以供以后调用。
有任何想法吗?