Show message Box in .net console application

84,722

Solution 1

We can show a message box in a console application. But first include this reference in your vb.net or c# console application

System.Windows.Forms;

Reference:

To add reference in vb.net program right click (in solution explorer) on your project name-> then add reference-> then .Net-> then select System.Windows.Forms.
To add reference in c# program right click in your project folders shown in solution explorer on add references-> .Net -> select System.Windows.Forms.

then you can do the below code for c# console application:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace ConsoleApplication6
{
    class Program
    {
        static void Main(string[] args)
        {


            MessageBox.Show("Hello World");
        }
    }
}

For the vb.net application you can simply code after inclusion of above mentioned reference

Module Module1

    Sub Main()
        MsgBox("Hello")
        Console.ReadKey()


    End Sub

End Module

Adapted from this answer to a related question.

Solution 2

To have a simple message box inside your console application you can follow the below steps.

  1. Create a property with attribute of

    using System.Runtime.InteropServices;
    [DllImport("User32.dll", CharSet = CharSet.Unicode)]
    public static extern int MessageBox(IntPtr h, string m, string c, int type);
    
  2. User the property to call the message box.

    MessageBox((IntPtr)0, "asdasds", "My Message Box", 0);
    
    using System;
    using System.Runtime.InteropServices;
    namespace AllKeys
    {
        public class Program
        {
            [DllImport("User32.dll", CharSet = CharSet.Unicode)]
            public static extern int MessageBox(IntPtr h, string m, string c, int type);
    
            public static void Main(string[] args)
            {
                MessageBox((IntPtr)0, "Your Message", "My Message Box", 0);
            }
        }
    }
    

Solution 3

In C# add the reference "PresentationFramework" in the project. Next in the class that you need the MessageBox add

using System.Windows;

also you can call the MessageBox class without the using like that:

System.Windows.MessageBox.Show("Stackoverflow");

Solution 4

For .NET 5 and .NET 6 =>

  1. Create the console app the regular way.

  2. Update the TargetFramework in .csproj with one of these:

    <TargetFramework>net5.0-windows</TargetFramework>

    <!--OR-->

    <TargetFramework>net6.0-windows</TargetFramework>

  3. Add this to .csproj:

    <UseWPF>true</UseWPF>

    <!-- AND/OR -->

    <UseWindowsForms>true</UseWindowsForms>

  4. Compile the app, so the referenced .NET dlls get updated.

  5. For the WPF message box add using System.Windows; and for the Windows Forms message box add using System.Windows.Forms; on the top of your code file. Then, just make calls to MessageBox.Show("...")

Share:
84,722
Syed Osama Maruf
Author by

Syed Osama Maruf

Software Enthusiast

Updated on January 18, 2022

Comments

  • Syed Osama Maruf
    Syed Osama Maruf over 2 years

    How to show a message box in a .net c# or vb console application ? Something like:

     Console.WriteLine("Hello World");
     MessageBox.Show("Hello World");
    

    or

    Console.WriteLine("Hello")
    MsgBox("Hello")
    

    in c# and vb respectively.
    Is it possible?

  • Hkachhia
    Hkachhia over 6 years
    Move Add reference explanation top because code is depended on reference
  • Siavash Mortazavi
    Siavash Mortazavi over 2 years
  • Siavash Mortazavi
    Siavash Mortazavi over 2 years
    Alos, if you want to hide the console window, here is the solution: stackoverflow.com/questions/3853629/…