C#のクラスライブラリでメッセージボックスを表示

このQ&Aのポイント
  • VisualStudio2010でVisualC#のクラスライブラリやコンソールアプリケーションでメッセージボックスを表示させたい。
  • WindowsフォームアプリケーションではMessageBox.Showを使用して表示させることができるが、クラスライブラリやコンソールアプリケーションでは表示方法が分からない。
  • 質問1ではVisualC#のクラスライブラリでメッセージボックスを表示させるためにどのようなコードを記述すれば良いか尋ねている。
回答を見る
  • ベストアンサー

C#のクラスライブラリでメッセージボックスを表示

VisualStudio2010でVisualC#のクラスライブラリやコンソールアプリケーションでメッセージボックスを表示させたいのですが、 Windowsフォームアプリケーションでは MessageBox.Show("メッセージ本文","タイトル",MessageBoxButtons.OK,MessageBoxIcon.Exclamation); で表示させることができたのですが、 クラスライブラリやコンソールアプリケーションでの中から表示する仕方が分かりません。(OS WindowsXP VisualStudio2010) 1) VisualC#のクラスライブラリでメッセージボックスを表示させるには public class Class1 { }   の中にどのようなコードを記述すればよいのでしょうか。 2) VisualC#のコンソールアプリケーションでメッセージボックスを表示させるには static void Main(string[] args) { }   の中にどのようなコードを記述すればよいのでしょうか。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

クラス直下にコードできるのはメンバの定義だけです。 メソッドを定義し、その中に記述しましょう。 using System; using System.Collections.Generic; using System.Text; using System.Windows.Forms; namespace ClassLibrary1 {   public class Class1   {     public void hoge()     {       MessageBox.Show("メッセージ本文", "タイトル", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);     }   } }

yam2012
質問者

お礼

できました。 >クラス直下にコードできるのはメンバの定義だけです。 >メソッドを定義し、その中に記述しましょう。 というようなアドバイスがとても参考になります。 ありがとうございました。

その他の回答 (1)

回答No.1

参照設定で System.Windows.Forms を読み込んで、 using System.Windows.Forms; してればいいと思います。

yam2012
質問者

補足

迅速な回答ありがとうございます。 教えていただきましたように、 ソリューションエクスプローラーでClassLibrary1プロジェクトを選択して、右クリック/参照の追加/(参照の追加ダイアログ)/.NETタブでSystem.Windows.Formsを選択してOKボタンで参照設定。 念のため、ソリューションエクスプローラーの参照設定の中にSystem.Windows.Formsがあることを確認。 この後、using System.Windows.Forms;のコードを追加すると、 いままでMessageBoxやMessageBoxButtonsやMessageBoxIconに表示されていた赤色波線は消えたのですが、今度はShow(とOK,とError)に赤色波線が表示されるようになりました。 他にも参照設定が必要なような気がしますが何を参照設定すればよいのかがよく分かりません。 よろしくお願いします。 ---Class1.cs---------------------------------- using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; namespace ClassLibrary1 { public class Class1 { MessageBox.Show("メッセージ本文","タイトル",MessageBoxButtons.OK,MessageBoxIcon.Exclamation); } } End Class ----------------------------------------------

関連するQ&A

  • ViualC++でのクラスライブラリの使い方がわかりません

    VisualC++(CLR)でクラスライブラリを作っています。 始め、やり方がわからないので、ひとまず 「Initメソッドを呼び出したらメッセージボックスを表示する」 と、したかったのですが、 System:: までアクセスできるものの、 System::Windows にアクセスできませんなぜでしょう? 更に、始めクラスライブラリを生成したときに //TODO メソッドはここに記述してください と書かれているのですが、そこ以外に記述していけないんでしょうか? わかる方お願いします

  • Visual Basic 2005 クラスライブラリの使い方

    異なるクラス間で共通の変数aを使いたいのですが、うまくいきません。あるクラスForm1でaを宣言しても他のクラスClass1でも宣言しないとエラーが出てしまいます。 以下のクラスをデバイスアプリケーションとして作成し、 Public Class Form1 Public a As Integer = 100  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim Test As New MyLibrary.Class1 Test.Plus1() MsgBox(a, MsgBoxStyle.Information, "実験") End Sub End Class 以下のクラスをクラスライブラリMyLibraryとして作成します。 Public Class Class1 Dim a As Integer = 0 Public Sub Plus1() a += 1 End Sub End Class Form1でボタンを押すと、メッセージボックスに100と表示されます。 (関数Plus1の効果なし) ちなみにClass1の「Dim a」を「Static a」にしてクラスライブラリ(DLL)を最初に呼び出したときだけ初期化すればよいと思ったのですが、そうすると「'Static' は、メンバ変数宣言では有効ではありません。」というエラーが出てしまいます。 解決方法をご存知の方、ご教授願います。 また、クラスライブラリ(DLL)を作成するとまとまりができてプログラムの変更がしやすいと思いますが、やはり処理速度が遅くなるなどの問題もあるのでしょうか?

  • サービスアプリからメッセージボックスの表示

    表題の件ですが、サービスアプリを作成しておりメッセージを表示したいと思います。 通常のフォームアプリですと、「msgbox」でメッセージボックスを表示出来ますが、サービスアプリから同じコードを書いても何も表示されません。 「デスクトップとの対話をサービスに許可」をオンにすると、「msgbox」でメッセージを表示するタイミングで「サービスがメッセージ出そうとしてますが表示しますか?」という感じのダイアログが出て、「OK」を押すとようやくメッセージボックスが表示されます。 これでは「キャンセル」ボタンを押されるとプログラムが停止する等で実用性が無いので別の方法を探したところ、 MessageBox.Show("test", "caption", MessageBoxButtons.OKCancel, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.ServiceNotification) で表示出来る、という方法を見つけました。 試したところ、ビルド時にエラーは出ませんが動作させてもメッセージボックスは表示されません。 「デスクトップとの対話をサービスに許可」をオン・オフどちらにしても表示されません。 6番目の「ServiceNotification」を「DefaultDesktopOnly」に変更しましたがやはり表示されません。 開発ツールは「Microsoft Visual Basic 2008」で動作環境は「windows7」の「Professional 64ビット」と「Enterprise 64ビット」です。この環境で動作確認後に32BitやWindows8でも動作させたいと考えております。 原因や対処法をご存知の方がおられましたら、ご教授頂けると非常に助かります。 お手数をお掛けいたしますが、よろしくお願いいたします。

  • VB.NET クラス内でプログラムを終了するには?

    VBAでは、エラーでプログラムを終了する時には Endステートメントを記述していましたが、 このVBAをVB.NET(クラスライブラリ、DLL)に 書き換えていますが VB.NETでClass1クラスの中にtest()メソッドを作って この中にEndステートメントを記述すると 「クラスライブラリプロジェクトで  Endステートメントを使用することができません。」 というメッセージが表示されますが エラーでプログラムを終了するには どのように記述すればいいのでしょうか。 Public Class Class1  Public Sub test(ByVal a As String)   If a = "" Then    MsgBox("致命的なエラーです")    End <===エラー発生   End If  End Sub End Class よろしくお願いします。(WindowsXP,VS2010)

  • C++ クラスをメンバにもつクラスについて

    お世話になります。C++初心者でうまくコードが書けません(><) クラス1と2があり、クラス1のメンバにはクラス2があります。 メインでクラス1をインスタンス化してクラス2のfunc2を呼び出します。 func2ではクラス1のインスタンスから呼び出された場合にクラス1の m_int1を取得します。 Class Class1{ public:  int m_int1;  Class2 m_Class2; }; Class Class2{ public: void func2(); }; void Class2::func2(){  /*ここの記述方法が分かりません*/  /*C1から呼び出されたらC1のm_int1に100を入れる*/  /*以下間違え*/  class1 C2_1;/*別のclass1のオブジェクトなのでこれに入れてもダメっぽい*/  C2_1.m_int1 = 100; } void main(){  class1 C1;  C1.m_int1 = 10;  C1.m_class2.func(); } C1.m_class2.func()の中から呼び出したC1にアクセスする方法が 分かりません(TT)。実体がまだあるのだからアクセスする方法は あると思うのですが・・・ どなたかよろしくお願いします。

  • メッセージボックスの非モーダル化について

    VB6のメッセージボックスは原則アプリケーションモーダルで表示されますよね? 引数に指定可能なvbApplicationModalの値は0なので非モーダル表示は不可能ではないか?と思います。 しかし、なんらかのトリックを使ってこのメッセージボックスを非モーダル表示させる方法はないものでしょうか? ヒントでも結構なのでよろしくお願いします。

  • メッセージボックスの表示

    エクセル2000のVBAでメッセージボックスを表示させたいのですが、OKボタンを押して閉じるのではなく、VBAの記述でメッセージをオープン、クローズがしたいのですが、方法がわかりません。 何がしたいかというと、 FOR~NEXTなどの処理で今何件処理しているかをリアルタイムで表示させたいのです。 どなたか知っている方がいれば教えてください。

  • JSPでメッセージボックスを表示したい

    urizakaです。 さて、早速質問したいのですが、現在作っているJSPのプログラムで ボタンを押すとFORMのActionに記述されているサーブレットに移動 してサーブレットを実行するかキャンセルするかという(いわゆるVB でいうところの)メッセージボックスを表示したいのですが、そのような 方法というのはあるのでしょうか?確か、javaにはメッセージボックス という概念が無かったような気もするので… 環境は、JBuilder4で、HTMLのソースコードは <Form Method="POST" Action="×××(ここにサーブレットの アドレスを入力)"> <Input type="submit" Value="押す"> </Form> です。  宜しくお願いします。

    • ベストアンサー
    • Java
  • モーダレスなメッセージボックス、またはチャイム(C#)

    モーダレスなメッセージボックスを 作りたいのですが、MessageBoxクラス などで何とかできないでしょうか。 また、自作しなければならない場合、 メッセージボックス表示時の、チャイム音 はどうしたら出せるでしょうか (BEEPとは、音が違います)。 お願いします。

  • MessageBoxについて

    WindowsXP VisualStudio 2005 C++ にてWindowsアプリケーションを作っています。 メッセージダイアログの「はい/いいえ」で分岐する処理で困っています。 ==================================================================== DialogResult^ mret; mret = MessageBox::Show( "msg1", "msg2", MessageBoxButtons::YesNo, MessageBoxIcon::Exclamation ); if ( mret == DialogResult::Yes ) { // ※Yes(はい)ボタンを押してもここに入りません。 } ==================================================================== 何か原因が考えられますでしょうか? 前後の処理は特に何もしていなく、処理を入れても正常に動きます。 よろしくお願いします。

専門家に質問してみよう