2009-08-26 5 views
1

dans vb.net i ont un code qui ressemble à ceci:Comment puis-je voir la sortie de Console.Error.WriteLine?

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 

je voudrais voir ce que la console est en train d'écrire. Comment puis-je faire cela?

Répondre

0

Il n'y a pas de console dans une application Winforms.

Vous devrez utiliser un MessageBox pour afficher votre message.

MessageBox.Show(de.Message)

2

Une alternative est d'utiliser la classe System.Diagnostics.Trace pour ces messages. Puis ils apparaîtront dans votre fenêtre de sortie Visual Studio, et vous pouvez éventuellement attacher d'autres "listeners", comme un ConsoleTraceListener (pour la console, quand il est disponible) ou le TextWriterTraceListener (pour les fichiers journaux). Vous pouvez même implémenter le vôtre (comme un DatabaseLogTraceListener ou un MessageBoxTraceListener — soyez prudent avec ce dernier, cependant).

1

J'ai canalisé la sortie d'une application WinForms en commençant depuis la ligne de commande:

myapp.exe > debugfile.txt 

Je l'ai fait avant de rediriger la sortie vers un fichier que je peux alors lire.

1

Pourquoi ne pas utiliser Debug.Print? il apparaîtra dans la fenêtre de sortie, tout en développant et est beaucoup plus propre, puis un tas de boîtes de message partout ...

0

J'ai ma propre solution:

J'ai créé un formulaire avec une zone de texte multiligne à quai pour remplir le la taille de la fenêtre. J'ai créé une fonction pour ajouter du texte à la zone de texte. Ma fonction ressemble à ceci:

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

Ensuite, au lieu d'utiliser MsgBox (« message d'erreur ») j'appelle ma fonction de cette façon:

ConsoleBox("My error message") 

Cela a fonctionné jusqu'à présent, et remplace tous les ennuyeux boîtes de message dont les boutons d'acceptation vous devez clik chaque fois que quelque chose tourne mal.

Espérons que cela aide.

Questions connexes