How to Convert a Console App into a Windows App in C#
Posted by gregd1024 on February 8, 2008
In this post I’m going to demonstrate how you can easily take a simple C# console application and convert it into a regular Windows application. It will involve just a few code changes and one project settings change. There are actually two methods to do it – a method in which you end up with almost the same code the wizard normally generates, and a method in which your application class becomes the main form. I’m only going to demonstrate the first method in this post; I’ll cover the second method in my next post.
The instructions presented in this post are for Visual Studio 2008, but most should work in a similar way with previous versions. I’m also going to use Express for the programmers who don’t have full blown Visual Studio.
Step 1: Create a C# Console Application
For demonstration purposes I’m creating a C# console application from the wizard. Of course, if you already have a console app you want to convert, open your project instead.
Step #2: Add References
Add the following references to the project:
These references are not added by the console app generator wizard, so we must add them manually. Also, add the corresponding “using” statements to your application’s main source file (the file that contains the Main() function):
- “using System.Drawing”
- “using System.Windows.Forms”
Step Three: Modify the Main() Function
Perform the following steps to the Main() function:
- Remove the “args” parameter from Main().
- Add the following two lines:
static void Main()
Application.EnableVisualStyles(); // <– ADD THIS LINE
// your existing code goes here (if any)
Application.Run(new Form1()); // <– ADD THIS LINE
You can optionally add “Application.SetCompatibleTextRenderingDefault(false);” right under the EnableVisualStyles() call, but it’s not required. I mention it because this is what the wizard adds when auto-generating a project, but its purpose is beyond me (if you know what this function does, please leave a comment).
Step Four: Add a New Form Resource to the Project
Add a new form to the project and keep the name as Form1.cs:
Step Five: Modify Project Settings
To modify the project settings go to the Project menu and click on Properties. Under the first tab (Application), click the Output type drop-down box and change it from “Console” to “Windows Application.”
Step Six: Compile and Run!
We’re done! Now try running the project. You should see a blank form without any console box:
In my next post I’m going to show you an even simpler way of doing this very same thing. Instead of explicitly adding a Form resource to the project, we’ll just take the class which houses Main() and turn it into a form programmatically. You’ll even be able to use the Form Designer to add controls and modify layouts.