質問

MDIアプリケーションがあります。 MessageBox.Show()を使用してメッセージボックスを表示すると、メッセージボックスを閉じると、開いているすべてのウィンドウの背後にアプリケーション全体が表示されなくなります。

コードは特別なことをしていません。実際、MDI子フォーム内からメッセージボックスを呼び出す行は次のとおりです。

MessageBox.Show(String.Format("{0} saved successfully.", Me.BusinessUnitTypeName), "Save Successful", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly)

Me.BusinessUnitTypeName()は、メンバー変数の値に応じて文字列を返す読み取り専用のプロパティゲッターです。このプロパティには副作用はありません。

アイデアはありますか

他のヒント

MessageBoxOptions.DefaultDesktopOnly パラメーターを削除すると、正しく機能します。

DefaultDesktopOnly は、" メッセージボックスがアクティブなデスクトップに表示される"フォーカスが失われます。

これらの答えは正しいですが、別のポイントを追加したかったのです。他の人のコードで作業しているときにこの質問に出会いました。シンプルなメッセージボックスにより、最前面のウィンドウが背面に移動しました。

MessageBox.Show(" Hello")。

終了すると、MessageBoxの前にBindingSource.Endeditコマンドがありました。 BindingSourceはまだどのコントロールにも接続されていませんでしたが、ウィンドウのZ位置が変更されました。

検索するとこの質問に至り、他の人に役立つかもしれないと思ったので、このメモのみを含めています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top