3

MSDN の例を既に確認しましたが、まだ問題があります。

2 つの数値を乗算し、出力をテキスト ボックスに表示する非常に単純なプログラムを作成しました。ここで、そのテキスト ボックスの値を読み取り、その値をテキスト ファイルに格納できるようにする必要があります。[ファイルに保存] ボタンをクリックすると、[ファイルに保存] ダイアログが表示されます。

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

現在、Visual Studio でエラーが発生しています。Overload resolution failed because no accessible 'WriteAllText' accepts this number of arguments.

4

2 に答える 2

4

WriteAllText静的メソッドには、データを書き込むファイルの名前が必要です。
saveFileDialog1で選択した名前を直接使用できます

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

代わりに、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 

コードは一例です。少しエラー処理を追加する必要があります

于 2013-03-14T21:39:02.347 に答える
1

こんにちは、上記の方法を試しましたが、この方法で成功しました....

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
   SaveFileDialog1.Filter = "TXT Files (*.txt*)|*.txt"
      If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK _
      Then
         My.Computer.FileSystem.WriteAllText _
         (SaveFileDialog1.FileName, RichTextBox1.Text, True)
      End If
End Sub
于 2013-12-24T10:06:05.073 に答える