Vb.net 如何将picturebox中的图像添加到记录中的字段,然后将记录放入文件

Vb.net 如何将picturebox中的图像添加到记录中的字段,然后将记录放入文件,vb.net,Vb.net,我正在尝试创建一个系统,允许用户将考试问题添加到文件中,以便以后检索。我已经声明了一个包含以下字段的记录: Structure recQuestion Public fldQuestion As String Public fldAnswer As String Public fldPicture As PictureBox Public fldExamName As String Public fldExamNumber As Integer P

我正在尝试创建一个系统,允许用户将考试问题添加到文件中,以便以后检索。我已经声明了一个包含以下字段的记录:

Structure recQuestion
    Public fldQuestion As String
    Public fldAnswer As String
    Public fldPicture As PictureBox
    Public fldExamName As String
    Public fldExamNumber As Integer
    Public fldMark As Integer
End Structure

Public oneExamQuestionRecord As recQuestion
然后我有一个表单,允许用户将详细信息添加到各种文本框中;问题、答案等,还包括允许用户在picturebox中选择和显示图像的功能

为了向文件中添加详细信息,我创建了一个按钮(btnAdd),其代码如下:

Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click

    Dim testFileName As String = CurDir() & "/testFile.dat"

    With oneExamQuestionRecord
        .fldAnswer = txtAnswer.Text
        .fldExamName = txtExamTitle.Text
        .fldExamNumber = CInt(txtExamNumber.Text)
        .fldMark = CInt(txtMark.Text)
        .fldPicture.Image = PictureBox1.Image
        .fldQuestion = txtQuestion.Text
    End With
我收到以下错误消息:

 "Object reference not set to an instance of an object"
执行以下行时:

.fldPicture.Image = PictureBox1.Image 

有什么建议吗?

那是行不通的。a)
fldPicture
被定义为图片盒而不是图像。这也是为什么你会得到一个NRE——那个图片框什么都不是。b) 必须将图像转换为Base64字符串,但如果这是用于某个随机访问平面文件的,则长度会有所不同,这就排除了这一点。只需保存图像的路径,但我会使用一种现代化的存储方式,如使用类(而不是结构)或数据库序列化
列表(T)
。感谢您的快速响应。我希望有一些简单的东西,但我需要回到绘图板。我需要了解有关“使用类序列化(T)列表”的更多信息。数据库一点也不难。保存N个项目的列表需要2-3行。另见