【问题标题】:printing to a file in a windows forms application---Visual Basic打印到 Windows 窗体应用程序中的文件---Visual Basic
【发布时间】:2017-04-18 19:04:44
【问题描述】:

所以我在 Visual Basic 中编写了一个程序,让用户输入书籍详细信息(ISBN 编号、作者......),然后将详细信息打印到文件中。我有以下显示表单和所有输入框的代码,但是我不知道需要将代码放置在何处以打印到文件。

打印到文件的代码如下

FileOpen(1, "C:\test\testbook.txt", OpenMode.Append)
PrintLine(1, ISBN & " " & Author & " " & Title & " " & PageCount)
FileClose()

我尝试将它放在表单的子目录中,但没有奏效。我的问题是我必须把这段代码放在哪里才能打印到文件中

完整代码:

Public Class createBookform
    Public ISBN, Author, Title As String
    Public PageCount As Integer

    Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        FileOpen(1, "C:\test\testbook.txt", OpenMode.Append)
        PrintLine(1, ISBN & " " & Author & " " & Title & " " & PageCount)
        FileClose()
    End Sub

    Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
        ISBN = TextBox1.Text
    End Sub

    Private Sub TextBox3_TextChanged(sender As Object, e As EventArgs) Handles TextBox3.TextChanged
        Author = TextBox3.Text
    End Sub

    Private Sub TextBox4_TextChanged(sender As Object, e As EventArgs) Handles TextBox4.TextChanged
        Title = TextBox4.Text
    End Sub

    Private Sub TextBox2_TextChanged(sender As Object, e As EventArgs) Handles TextBox2.TextChanged
        PageCount = TextBox2.Text
    End Sub

    Private Sub OKbUTTON_Click(sender As Object, e As EventArgs) Handles OKbUTTON.Click
        MessageBox.Show("New book entered successfully", "Book confirmation")
        Close()
    End Sub
End Class

windows form that opens when code is executed

【问题讨论】:

  • 传统上,“打印到文件”是当您打印出一个文档并设置“到文件”的勾号来为假脱机程序创建一个prn 文件时。您要做的是“保存到文件”。问问自己什么时候应该发生。您目前正尝试在表单显示之前执行此操作。

标签: vb.net file-handling


【解决方案1】:

除非我遗漏了什么,否则你的意思是:

Public Class createBookform
    Public ISBN, Author, Title As String
    Public PageCount As Integer

    Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
         ISBN = TextBox1.Text
    End Sub

    Private Sub TextBox3_TextChanged(sender As Object, e As EventArgs) Handles TextBox3.TextChanged
        Author = TextBox3.Text
    End Sub

    Private Sub TextBox4_TextChanged(sender As Object, e As EventArgs) Handles TextBox4.TextChanged
        Title = TextBox4.Text
    End Sub

    Private Sub TextBox2_TextChanged(sender As Object, e As EventArgs) Handles TextBox2.TextChanged
        PageCount = TextBox2.Text
    End Sub

    Private Sub OKbUTTON_Click(sender As Object, e As EventArgs) Handles OKbUTTON.Click
        FileOpen(1, "C:\test\testbook.txt", OpenMode.Append)
        PrintLine(1, ISBN & " " & Author & " " & Title & " " & PageCount)
        FileClose()
        MessageBox.Show("New book entered successfully", "Book confirmation")
        Close()
    End Sub
End Class

?

通常,您根本不会为变量或 TextChanged 事件而烦恼,您只需使用以下代码:

Public Class createBookform    
    Private Sub OKbUTTON_Click(sender As Object, e As EventArgs) Handles OKbUTTON.Click
        FileOpen(1, "C:\test\testbook.txt", OpenMode.Append)
        PrintLine(1, TextBox1.Text & " " & TextBox3.Text & " " & TextBox4.Text & " " & TextBox2.Text)
        FileClose()
        MessageBox.Show("New book entered successfully", "Book confirmation")
        Close()
    End Sub
End Class

为了更清楚起见,您可以将文本框重命名为有意义的名称(例如,txbISBN 表示 ISBN 文本框)。

【讨论】:

  • 而且他们也不需要任何TextChanged 处理程序。
  • @GSerg 真的!做了一个补充以帮助 OP 更多一点。
猜你喜欢
  • 1970-01-01
  • 2016-05-10
  • 1970-01-01
  • 1970-01-01
  • 2020-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-24
相关资源
最近更新 更多