- PR -

MessageBoxについて

1
投稿者投稿内容
ターキッシュ
大ベテラン
会議室デビュー日: 2003/01/15
投稿数: 126
投稿日時: 2003-07-09 14:06
いつも勉強させて頂いております。
現在、ASP.NETのページ上でボタンを押した際に、MessageBoxを
表示させる極めて簡単なページを作成しておりますが、実行させる
と読み込み中の状態が長時間続き、全くMessageBoxが表示される
気配もありません。

コードは下記になります。
_______________________________
MessageBoxクラス
using System;
using System.Runtime.InteropServices;

public class MessageBox
{
[ DllImport( "User32.dll", EntryPoint="MessageBox",
CharSet=CharSet.Auto )]
 public static extern int MsgBox( int hWnd, String text, String caption,
uint type );
}

ボタンが存在するページ上で
public void Msg_Button(object sender,System.Web.UI.WebControls.CommandEventArgs e){
MessageBox.MsgBox(0,"メッセージボックス表示","MsgBox Sample", 0);
}

_______________________________________

概略なので、表記ミスがあるかもしれませんが、上のようにして実行しています。
エラーは一切起こらないのですが、表示されません。

どなたかご存知の方いらっしゃいましたら、ご教授御願いします。
よろしくお願いします。

cats
大ベテラン
会議室デビュー日: 2002/11/29
投稿数: 221
お住まい・勤務地: 東京
投稿日時: 2003-07-09 14:50
・ASP.NETでのコードは、サーバで動くので、クライアントにメッセージを出すには、javascriptを使うしかないのではないでしょうか。

他に気づいた点
・MessageBoxは、user32.dllではなく、System.Windows.Forms.MessageBoxを使った方がいいのではないでしょうか。(ASP.NETでは使えないですが)
・javascriptでは役不足ならば、リッチクライアントという選択肢があるかもしれません。
石野 光仁
会議室デビュー日: 2002/04/18
投稿数: 18
投稿日時: 2003-07-09 15:04
こんにちは、
そのプログラムですと、サーバーにメッセージボックスがでていると
思います。ただ、見えないところにですが・・・。

下のプログラムで表示できると思います。
よかったら使ってみてください。

Page_Load(object sender, System.EventArgs e)
{
// ページを初期化するユーザー コードをここに挿入します。
btnTest.Attributes["OnClick"] = "return confirm('テストを実行しますか');";
}

private void btnTest_Click(object sender, System.EventArgs e)
{
if (lblLabel.Text == "")
lblLabel.Text = "ボタンが押されました";
else
lblLabel.Text = "";
}

#私のページに説明があるのでよかったら見てみてください。
#ただ、今はちょっとネットワークが調子悪いので 見えない場合があります。
ターキッシュ
大ベテラン
会議室デビュー日: 2003/01/15
投稿数: 126
投稿日時: 2003-07-09 15:33
ME-5501様ご返事ありがとうございました。
無事起動できました。

もともと
http://www.microsoft.com/japan/msdn/net/general/faq111700.asp
のページを参考にしていたのですが、駄目だったので、困っていました。

一つご質問なのですが、元のソースをサーバマシンでデバッグを追ってましたが、
MessageBoxの表示がどこにもでませんでしたが、プロセスか何かが起動するだけ
なのでしょうか?

今後もご教授よろしく御願いします。
石野 光仁
会議室デビュー日: 2002/04/18
投稿数: 18
投稿日時: 2003-07-09 15:54
見えないものなので、なんともいえないのですが。

Webサービスは画面を持っていないので、MessageBoxも
画面に出てこれないんだと思います。 その前に処理されてないかも
しれませんが・・・

参考にしたページは、WindowsFormでAPIを使ってのメッセージ
ボックスの表示するというサンプルですね。
ASP.NETで、画面の操作とかは、しないでください。
行き場を失いますから。Webサービスが可愛そうです。

石野 光仁
会議室デビュー日: 2002/04/18
投稿数: 18
投稿日時: 2003-07-09 16:03
もう一つ、

誰が、誰の環境で動いているか考えてみてください。
クライアントアプリは
  プログラムが、.NET Framework上で動いています。

Webシステムは、
クライアントでは、
  IEが、Windows上で動いています。

リクエストを受けたWebサーバーでは、
  プログラムが、サーバーの.NET Frameworkで動いています。

Webシステムですと、リクエストを受けるサーバー上のプログラムを
書く事になります。ここで画面に表示を行うプログラム(メッセージボックスの表示)
を書くと、サーバーの.NET Frameworkで処理されて、サーバーの画面に
メッセージボックスを表示させようとします。
プログラムがどこで動いているのか もう一度考えてみてください。
説明が下手ですが、わかりますでしょうか?
ターキッシュ
大ベテラン
会議室デビュー日: 2003/01/15
投稿数: 126
投稿日時: 2003-07-09 17:08
ME-5501様ご返答ありがとうございます。
私の勘違いで申し訳ありませんでした。
あのページの内容はWindowsFormの話だったんですね。

ちなみに、私の今回の開発環境はWindows2000サーバ
上でVS.NETでWebアプリケーションを開発し、デバック
してもでなかったのでおかしいなと思っての質問でした。

恐らく、これもForm上のAPI使用を無理やりWebForm上
で動かした為にできなかったのだと思います。

今後もご指導よろしく御願いします。












1

スキルアップ/キャリアアップ(JOB@IT)