C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: メッセージボックスが裏に隠れる


(過去ログ 58 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■32718 / inTopicNo.1)  メッセージボックスが裏に隠れる
  
□投稿者/ ガチンコ (9回)-(2009/02/13(Fri) 10:50:11)

分類:[C#] 

お世話になります。

度々申し訳ありませんが、また質問させてください。

タイトルの通り、メッセージボックスが裏に隠れる現象が発生しており、
頭を悩ましております。

メッセージボックスは、

フォーム1

フォーム2.ShowDialog();
でフォーム2を表示

フォーム3.ShowDialog();
でフォーム3を表示

MessageBox.Showメソッドより、メッセージボックスを表示 (裏に隠れる)

と表示しており、ShowDialogメソッドでは、Owner指定しておりません。
※Owner指定しても、裏に隠れてしまいます。

フォーム3でのMessageBox.Showメソッドにて、
MessageBox.Show(this, "hogehoge");

としても、裏に隠れてしまいます。

ここでさらに不可思議な現象が、
フォーム3の画面サイズをフォーム2の画面サイズと同じぐらいにすると、
裏に隠れず、うまく表示されます。

どなたか情報をお持ちの方、よろしくお願いいたします。

引用返信 編集キー/
■32804 / inTopicNo.2)  Re[1]: メッセージボックスが裏に隠れる
□投稿者/ はげででぶ (1回)-(2009/02/15(Sun) 13:26:46)
こんにちは。

・与えられた情報のみでとりあえずコーディングしてみましたが、
 現象が再現できません。再現可能なコードを提示してもらえますか?
・.NET Frameworkのバージョンは何ですか?

はげででぶ

No32718 (ガチンコ さん) に返信
> お世話になります。
>
> 度々申し訳ありませんが、また質問させてください。
>
> タイトルの通り、メッセージボックスが裏に隠れる現象が発生しており、
> 頭を悩ましております。
>
> メッセージボックスは、
>
> フォーム1
> ↓
> フォーム2.ShowDialog();
> でフォーム2を表示
> ↓
> フォーム3.ShowDialog();
> でフォーム3を表示
> ↓
> MessageBox.Showメソッドより、メッセージボックスを表示 (裏に隠れる)
>
> と表示しており、ShowDialogメソッドでは、Owner指定しておりません。
> ※Owner指定しても、裏に隠れてしまいます。
>
> フォーム3でのMessageBox.Showメソッドにて、
> MessageBox.Show(this, "hogehoge");
>
> としても、裏に隠れてしまいます。
>
> ここでさらに不可思議な現象が、
> フォーム3の画面サイズをフォーム2の画面サイズと同じぐらいにすると、
> 裏に隠れず、うまく表示されます。
>
> どなたか情報をお持ちの方、よろしくお願いいたします。
>
引用返信 編集キー/
■32812 / inTopicNo.3)  Re[2]: メッセージボックスが裏に隠れる
□投稿者/ まどか (606回)-(2009/02/16(Mon) 00:33:25)
もし、Loadイベントなどでやっているのでしたら、Shownイベントなどフォームが表示されてからやってみてください。
また、ShowDialogの前にフォーカスに影響があるようなことをしていないかも確認です。
#そのメソッド内で

引用返信 編集キー/
■32833 / inTopicNo.4)  Re[3]: メッセージボックスが裏に隠れる
□投稿者/ ガチンコ (11回)-(2009/02/16(Mon) 12:33:36)
No32812 (はげででぶ さん) に返信
No32812 (まどか さん) に返信

申し訳ありませんが、スパゲッティソースなため、
これ以上の情報提供ができません。(まだそこまで把握してないので)

パニックってて、無茶な質問をしてしまいました。

結局、時間も無かったので、自作でメッセージを表示する
TopMostなフォームを作成することで対応しました。

ご迷惑をおかけしました。

解決済み
引用返信 編集キー/
■32834 / inTopicNo.5)  Re[4]: メッセージボックスが裏に隠れる
□投稿者/ ガチンコ (12回)-(2009/02/16(Mon) 12:48:40)
No32812 (まどか さん) に返信
> また、ShowDialogの前にフォーカスに影響があるようなことをしていないかも確認です。

このヒントを元に冷静になってみるスパゲッティをほじってみたら、
Paintイベントが見つかりました。(イベント名はXXXXXPaintXXXXProcって…)

このPaintイベントで、フォーカスに影響を受ける処理がありましたので、
その部分を受けないよう処理することで、現象が発生しなくなりました。

「画面サイズによって、現象が発生しなくなる」ということにも、
これで説明がつきます。

ありがとうございました!
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -