Home / Programming / Blog article: Output To Console In Windows Forms Application

| RSS

Output To Console In Windows Forms Application

September 1st, 2009 | 7 Comments | Posted in Programming

This post shows you how to output data to a Console in a Windows Forms Application. I use this technique religiously when developing Windows Forms applications. Debugging is much simpler when you can see information on what your application is doing in a Console. Of course the onus is on you as developer to output data which will help you.

In this post I will use a simple Windows Forms application which adds two numbers.

Windows Forms

By default a Windows Forms application does not output to a Console even if you write a Console.Write() or Console.WriteLine(). This shortcoming can be addressed by using Win32 API. In your Windows Forms application you can declare a class which provides a wrapper around Win32 functions.

public class Win32
{
  /// <summary>
  /// Allocates a new console for current process.
  /// </summary>
  [DllImport("kernel32.dll")]
  public static extern Boolean AllocConsole();

  /// <summary>
  /// Frees the console.
  /// </summary>
  [DllImport("kernel32.dll")]
  public static extern Boolean FreeConsole();
}

A Console must be started to accept input and display our messages. This can be done by calling Win32.AllocConsole() function. For my example I will start the console in my form’s constructor.

public Form1()
{
  InitializeComponent();

  Win32.AllocConsole();
}

Now when I write to Console, I will see data appear in the console window which was started in my constructor.

private void Add(int num1, int num2)
{
  int result = num1 + num2;

  Console.WriteLine(
    string.Format("{0} + {1} = {2}", num1, num2, result));
}

Console

As a good practice you should also close the console window by calling Win32.FreeConsole() method before your application exits.

Leave a Reply 5546 views, 2 so far today |
Follow Discussion

7 Responses to “Output To Console In Windows Forms Application”

  1. Kevin Says:

    Thanks for the tip. Too bad Console.Clear does not work under Vista although works fine under XP.

  2. Ed Says:

    Thanks, just what I needed

  3. Deepak Says:

    Thanks Ed. I’m glad that you found this article helpful.

  4. Chandra Says:

    It is great. Very helpful
    Thank you.

  5. Akshay Says:

    It worked.
    Thanks !

  6. Bob Says:

    Thank you for publishing this solution. I have tried several different offered solution and yours is the only one the worked the very first time. Great job!

  7. Deepak Says:

    Bob, Thanks for your motivating comment.

Leave a Reply





Switch to our mobile site