How to use Messagebox in class library c#?

31,793

Solution 1

You should NOT use a Windows forms MessageBox inside a class library. What if you use this library in an ASP.NET application. The MessageBox will be shown in Webserver. And your webserver will be waiting (hung) untill someone responds to that MessageBox in webserver.

An ideal design would be that you either return the message as string and deal with that string in caller specific way or throw an exception if thats what you want.

If you still want then here is your code corrected

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace MessageBoxes
{
    class ShowInfo
    {
        public void ShowMessage(string msg)
        {
            MessageBox.Show(msg);
        }
    }
}

Solution 2

Additional Answer to this Question:

After the Class Library Project has been created.

Right Click your Project Add > New Item > Windows form

it's done by adding reference System.Windows.Forms.dll

Solution 3

You have the call to messagebox outside any method.
This code cannot be compiled at all.

You should write

namespace MessageBoxes
{
    class ShowInfo
    {
        public void ShowUserMessage(string messageText)
        {
             MessageBox.Show(messageText);
        }
    }
}

and then call it after instancing an object of type ShowInfo

ShowInfo info = new ShowInfo();
info.ShowUserMessage("This is a Test");
Share:
31,793
PotterWare
Author by

PotterWare

Updated on November 15, 2020

Comments

  • PotterWare
    PotterWare over 3 years

    How to use MessageBox in class library?

    Here is my code

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace MessageBoxes
    {
        class ShowInfo
        {
            MessageBox.Show("test");
        }
    }
    

    i can load MessageBox but can't have show property, MessageBox.Show("test"); <-- fail