2

2 つのボタンとテキストを含むメッセージ ボックスがあります。これは関連するコードです:

var result = MessageBox.Show("just a text","just a title",MessageBoxButtons.OKCancel,System.Windows.Forms.MessageBoxIcon.Warning,System.Windows.Forms.MessageBoxDefaultButton.Button1, System.Windows.Forms.MessageBoxOptions.ServiceNotification | System.Windows.Forms.MessageBoxOptions.RightAlign);
if (result == DialogResult.OK)
{
    ... code ...
}

私の問題は、プログラムが自動的に「if」内にコードを入力し、ポップアップ メッセージ ボックスが表示されないことです。デバッグしても、コードが「if」行に移動し、結果がDialogResult.OKであることがわかります。

Web フォームと ASP.Net を使用しています。

MessageBox の名前空間は "System.Windows.Forms" です。

キャッシュとiisresetをクリアしようとしました。

他に何が私を助けることができますか?

前もって感謝します。

4

2 に答える 2

7

Web フォームと ASP.Net を使用しています。

MessageBox の名前空間は "System.Windows.Forms" です。

そうしないでください。MessageBoxASP.NET サイトはサーバーで実行されるため、サーバー上にポップアップが表示されてもクリックできる人は誰もいません。

ユーザーにポップアップを表示する場合は、Javascript である必要があります。ASP.NET で結果を c# に返す簡単な yes/no ポップアップを作成する方法を参照してください。.

于 2015-05-04T10:14:39.943 に答える
0

ここには 2 つの問題があります。コード ロジックでは、MessageBox のShowメソッドはメイン スレッドと同時に実行されます。そのため、 Showメソッドを実行した直後にコードを実行すると、メイン スレッドは応答を待ちません! メッセージを閉じるのをメイン スレッドで待ちたい場合は、MessageBox のShowDialog関数を使用する必要があります。( MSDN リファレンス)

しかし今、あなたは ASP で作業しています。これは Windows とは大きく異なります。私たちの親愛なる友人であるCodeCasterも「ASP はクライアント側ではなくサーバー側です!」と述べています。したがって、メッセージは、Web サイトを見ているユーザー システムではなく、サーバー システムに表示されます。

于 2015-05-04T13:57:23.770 に答える