我怎么能看到Console.Error.WriteLine的输出?

时间:2009-08-26 20:32:56

标签: vb.net winforms pdf

在vb.net中我有一些看起来像这样的代码:

Imports System
Imports System.IO
Imports iTextSharp.text
Imports iTextSharp.text.pdf

Public Class Form1

    Public Sub New1()
        Directory.SetCurrentDirectory("C:\Users\alexluvsdanielle\Desktop\") '"
        Console.WriteLine("Chapter 10 example 10: nested PdfPTables") 
        Dim doc As Document = New Document(PageSize.A4, 50, 50, 50, 50)

        Try
            Dim writer As PdfWriter = PdfWriter.GetInstance(doc, New FileStream("Chap1010.pdf", FileMode.Create))
            doc.Open()
            Dim table As PdfPTable = New PdfPTable(4)
            Dim nested1 As PdfPTable = New PdfPTable(2)
            nested1.AddCell("1.1")
            nested1.AddCell("1.2")
            Dim nested2 As PdfPTable = New PdfPTable(1)
            nested2.AddCell("2.1")
            nested2.AddCell("2.2")
            Dim k As Integer = 0
            While k < 24
                If k = 1 Then
                    table.AddCell(nested1)
                Else
                    If k = 20 Then
                        table.AddCell(nested2)
                    Else
                        table.AddCell("cell " + k)
                    End If
                End If
                System.Threading.Interlocked.Increment(k)
            End While
            table.TotalWidth = 300
            table.WriteSelectedRows(0, -1, 100, 600, writer.DirectContent)
            doc.Close()

        Catch de As Exception
            Console.Error.WriteLine(de.Message)
            Console.Error.WriteLine(de.StackTrace)
        End Try
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        New1()
        End  
    End Sub

End Class

我想看看控制台在写什么。我该怎么做?

5 个答案:

答案 0 :(得分:2)

另一种方法是使用System.Diagnostics.Trace类来处理这些消息。然后它们将显示在Visual Studio输出窗口中,您可以选择附加其他“侦听器”,如ConsoleTraceListener(对于控制台,当它可用时)或TextWriterTraceListener(对于日志文件)。你甚至可以实现自己的(比如DatabaseLogTraceListener或MessageBoxTraceListener - 但要注意最后一个)。

答案 1 :(得分:1)

我通过命令行启动WinForms应用程序的输出:

myapp.exe > debugfile.txt

之前我已经完成了将输出重定向到我可以读取的文件。

答案 2 :(得分:1)

为什么不使用Debug.Print?它会在开发时显示在输出窗口中,并且比任何地方的一堆消息框更清洁......

答案 3 :(得分:0)

Winforms应用程序中没有控制台。

您需要使用MessageBox来显示您的消息。

MessageBox.Show(de.Message)

答案 4 :(得分:0)

我有自己的解决方案:

我创建了一个带有多行文本框的表单,用于填充窗口大小。我创建了一个函数来将一些文本附加到文本框中。我的功能如下:

Friend Sub ConsoleBox(ByVal message As String)
    If frmConsole.Visible = False Then
        frmConsole.Show()
    End If
    frmConsole.txtConsole.AppendText(message & vbNewLine)
End Sub

然后,我没有使用MsgBox(&#34;错误消息&#34;)而是以这种方式调用我的函数:

ConsoleBox("My error message")

到目前为止,这已经奏效了,它取代了所有烦人的消息框,每当出现问题时,你必须使用接受按钮。

希望这有帮助。