使用 SaveFileDialog 将数据保存到文本图块?

Mat*_*att 4 vb.net text dialog file save

我已经查看了MSDN 示例,但仍然遇到问题。

我创建了一个超级简单的程序来将两个数字相乘,并在文本框中显示输出。现在我需要能够读取该文本框值并将该值放入文本文件中,当单击“保存到文件”按钮时打开“保存到文件”对话框。

Private Sub MutiplyBtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MutiplyBtn.Click
    Dim FirstNum As Double = Num1.Text
    Dim SecondNum As Double = Num2.Text
    Dim Answer2 As Double = FirstNum * SecondNum
    Answerbox.Text = Answer2
End Sub

Private Sub SaveResultToFile_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SaveResultToFile.Click
    Dim myStream As Stream
    Dim saveFileDialog1 As New SaveFileDialog()

    saveFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"
    saveFileDialog1.FilterIndex = 2
    saveFileDialog1.RestoreDirectory = True

    If saveFileDialog1.ShowDialog() = DialogResult.OK Then
        myStream = saveFileDialog1.OpenFile()
        If (myStream IsNot Nothing) Then
            System.IO.File.WriteAllText(Answerbox.Text)
            myStream.Close()
        End If
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)

目前,Visual Studio 给我一个错误:Overload resolution failed because no accessible 'WriteAllText' accepts this number of arguments.

Ste*_*eve 5

WriteAllText静态方法需要应写入数据的文件的名称。
您可以直接使用在 saveFileDialog1 中选择的名称

If saveFileDialog1.ShowDialog() = DialogResult.OK Then
    System.IO.File.WriteAllText(saveFiledialog1.FileName, Answerbox.Text)
End If
Run Code Online (Sandbox Code Playgroud)

相反,如果您确实想使用 OpenFile() 方法打开的流,您的代码应该是

   If saveFileDialog1.ShowDialog() = DialogResult.OK Then
        Dim sw As StreamWriter = new StreamWriter(saveFileDialog1.OpenFile())
        If (sw IsNot Nothing) Then 
            sw.WriteLine(Answerbox.Text)
            sw.Close()
        End If 
    End If 
Run Code Online (Sandbox Code Playgroud)

该代码是一个示例,您需要添加一些错误处理