Create a Windows Forms app in Visual Studio with C#

Applies to: yesVisual Studio noVisual Studio for Mac noVisual Studio Code

In this tutorial, you'll create a simple C# application that has a Windows-based user interface (UI).

If you haven't already installed Visual Studio, go to the Visual Studio downloads page to install it for free.

Note

Some of the screenshots in this tutorial use the dark theme. If you aren't using the dark theme but would like to, see the Personalize the Visual Studio IDE and Editor page to learn how.

If you haven't already installed Visual Studio, go to the Visual Studio 2022 downloads page to install it for free.

Create a project

First, you'll create a C# application project. The project type comes with all the template files you'll need, before you've even added anything.

  1. Open Visual Studio.

  2. On the start window, choose Create a new project.

    View the 'Create a new project' window

  3. On the Create a new project window, choose the Windows Forms App (.NET Framework) template for C#.

    (If you prefer, you can refine your search to quickly get to the template you want. For example, enter or type Windows Forms App in the search box. Next, choose C# from the Language list, and then choose Windows from the Platform list.)

    Choose the C# template for the Windows Forms App (.NET Framework)

    Note

    If you do not see the Windows Forms App (.NET Framework) template, you can install it from the Create a new project window. In the Not finding what you're looking for? message, choose the Install more tools and features link.

    The 'Install more tools and features' link from the 'Not finding what you're looking for' message in the 'Create new project' window

    Next, in the Visual Studio Installer, choose the .NET desktop development workload.

    .NET Core workload in the Visual Studio Installer

    After that, choose the Modify button in the Visual Studio Installer. You might be prompted to save your work; if so, do so. Next, choose Continue to install the workload. Then, return to step 2 in this "Create a project" procedure.

  4. In the Configure your new project window, type or enter HelloWorld in the Project name box. Then, choose Create.

    in the 'Configure your new project' window, name your project 'HelloWorld'

    Visual Studio opens your new project.

  1. Open Visual Studio.

  2. On the start window, select Create a new project.

    Screenshot to show the Create a new project window.

  3. On the Create a new project window, select the Windows Forms App (.NET Framework) template for C#.

    (If you prefer, you can refine your search to quickly get to the template you want. For example, enter or type Windows Forms App in the search box. Next, select C# from the Language list, and then select Windows from the Platform list.)

    Screenshot to select the C# template for the Windows Forms App (.NET Framework).

    Note

    If you do not see the Windows Forms App (.NET Framework) template, you can install it from the Create a new project window. In the Not finding what you're looking for? message, select the Install more tools and features link.

    Screenshot to show the The 'Install more tools and features' link from the 'Not finding what you're looking for' message in the 'Create a new project' window.

    Next, in the Visual Studio Installer, select the .NET desktop development workload.

    Screenshot to show the .NET Core workload in the Visual Studio Installer.

    After that, select the Modify button in the Visual Studio Installer. You might be prompted to save your work; if so, do so. Next, select Continue to install the workload. Then, return to step 2 in this "Create a project" procedure.

  4. In the Configure your new project window, type or enter HelloWorld in the Project name box. Then, select Create.

    Screenshot to show the 'Configure your new project' window and name your project 'HelloWorld'.

    Visual Studio opens your new project.

Create the application

After you select your C# project template and name your file, Visual Studio opens a form for you. A form is a Windows user interface. We'll create a "Hello World" application by adding controls to the form, and then we'll run the app.

Add a button to the form

  1. Select Toolbox to open the Toolbox fly-out window.

    Screenshot to select the Toolbox to open the Toolbox window.

    (If you don't see the Toolbox fly-out option, you can open it from the menu bar. To do so, View > Toolbox. Or, press Ctrl+Alt+X.)

  2. Expand Common Controls and select the Pin icon to dock the Toolbox window.

    Screenshot to select the Pin icon to pin the Toolbox window to the IDE.

  3. Select the Button control and then drag it onto the form.

    Screenshot to add a button to the form.

  4. In the Properties window, locate Text, change the name from button1 to Click this, and then press Enter.

    Screenshot to add text to the button on the form by using the Properties window.

    (If you don't see the Properties window, you can open it from the menu bar. To do so, select View > Properties Window. Or, press F4.)

  5. In the Design section of the Properties window, change the name from button1 to btnClickThis, and then press Enter.

    Screenshot to add a function to the button on the form by using the Properties window.

    Note

    If you've alphabetized the list in the Properties window, button1 appears in the (DataBindings) section, instead.

Add a label to the form

Now that we've added a button control to create an action, let's add a label control to send text to.

  1. Select the Label control from the Toolbox window, and then drag it onto the form and drop it beneath the Click this button.

  2. In either the Design section or the (DataBindings) section of the Properties window, change the name of label1 to lblHelloWorld, and then press Enter.

Add code to the form

  1. In the Form1.cs [Design] window, double-click the Click this button to open the Form1.cs window.

    (Alternatively, you can expand Form1.cs in Solution Explorer, and then choose Form1.)

  2. In the Form1.cs window, after the private void line, type or enter lblHelloWorld.Text = "Hello World!"; as shown in the following screenshot:

    Screenshot to add code to the form

Run the application

  1. Select the Start button to run the application.

    Screenshot to select Start to debug and run the app.

    Several things will happen. In the Visual Studio IDE, the Diagnostics Tools window will open, and an Output window will open, too. But outside of the IDE, a Form1 dialog box appears. It will include your Click this button and text that says label1.

  2. Select the Click this button in the Form1 dialog box. Notice that the label1 text changes to Hello World!.

    Screenshot to show a Form1 dialog box that includes label1 text.

  3. Close the Form1 dialog box to stop running the app.

Create the application

After you select your C# project template and name your file, Visual Studio opens a form for you. A form is a Windows user interface. We'll create a "Hello World" application by adding controls to the form, and then we'll run the app.

Add a button to the form

  1. Choose Toolbox to open the Toolbox fly-out window.

    Choose the Toolbox to open the Toolbox window

    (If you don't see the Toolbox fly-out option, you can open it from the menu bar. To do so, View > Toolbox. Or, press Ctrl+Alt+X.)

  2. Choose the Pin icon to dock the Toolbox window.

    Choose the Pin icon to pin the Toolbox window to the IDE

  3. Choose the Button control and then drag it onto the form.

    Add a button to the form

  4. In the Properties window, locate Text, change the name from Button1 to Click this, and then press Enter.

    Add text to the button on the form

    (If you don't see the Properties window, you can open it from the menu bar. To do so, choose View > Properties Window. Or, press F4.)

  5. In the Design section of the Properties window, change the name from Button1 to btnClickThis, and then press Enter.

    Add a function to the button on the form

    Note

    If you've alphabetized the list in the Properties window, Button1 appears in the (DataBindings) section, instead.

Add a label to the form

Now that we've added a button control to create an action, let's add a label control to send text to.

  1. Select the Label control from the Toolbox window, and then drag it onto the form and drop it beneath the Click this button.

  2. In either the Design section or the (DataBindings) section of the Properties window, change the name of Label1 to lblHelloWorld, and then press Enter.

Add code to the form

  1. In the Form1.cs [Design] window, double-click the Click this button to open the Form1.cs window.

    (Alternatively, you can expand Form1.cs in Solution Explorer, and then choose View Code(or press F7) from the right-click menu on Form1.cs.)

  2. In the Form1.cs window, after the private void line, type or enter lblHelloWorld.Text = "Hello World!"; as shown in the following screenshot:

    Add code to the form

Run the application

  1. Choose the Start button to run the application.

    Choose Start to debug and run the app

    Several things will happen. In the Visual Studio IDE, the Diagnostics Tools window will open, and an Output window will open, too. But outside of the IDE, a Form1 dialog box appears. It will include your Click this button and text that says Label1.

  2. Choose the Click this button in the Form1 dialog box. Notice that the Label1 text changes to Hello World!.

    A Form1 dialog box that includes Label1 text

  3. Close the Form1 dialog box to stop running the app.

Next steps

Congratulations on completing this tutorial. To learn more, continue with the following tutorial:

See also