4

クラス ライブラリで MessageBox を使用するには?

これが私のコードです

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");
    }
}

MessageBox を読み込むことはできますが、show プロパティ、MessageBox.Show("test"); を持つことはできません。<-- 失敗

4

4 に答える 4

9

クラス ライブラリ内でWindows フォーム MessageBoxを使用しないでください。このライブラリを ASP.NET アプリケーションで使用するとどうなりますか。MessageBox が Web サーバーに表示されます。そして、あなたのウェブサーバーは、誰かがウェブサーバーのそのメッセージボックスに応答するまで待機 (ハング) します。

理想的な設計は、メッセージを文字列として返し、呼び出し元固有の方法でその文字列を処理するか、それが必要な場合は例外をスローすることです。

それでも必要な場合は、ここにコードが修正されています

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);
        }
    }
}
于 2013-04-06T08:56:53.697 に答える
1

メソッドの外側でメッセージボックスへの呼び出しがあります。
このコードはまったくコンパイルできません。

あなたは書くべきです

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

次に、タイプ ShowInfo のオブジェクトをインスタンス化した後にそれを呼び出します

ShowInfo info = new ShowInfo();
info.ShowUserMessage("This is a Test");
于 2013-04-06T08:48:23.113 に答える
0

メインフォームで実際にクラスを使用していることを確認してください。

class ShowInfo
{
    public static void show()
    {
        System.Windows.Forms.MessageBox.Show("test");
    }
}

...

    public Form1()
    {
        InitializeComponent();
        ShowInfo.show();
    }
于 2013-04-06T08:52:30.063 に答える