DOBON.NET DOBON.NETプログラミング掲示板過去ログ

フォームのモーダレスについて

環境/言語:[.NET]
分類:[.NET]

お世話になります。
環境
OS:XP
.NET
VC++

FormA
FormBがあり、AからBをB->Show()で表示し、続けてAからMessageBoxを表示している(A、B、MessageBoxが重なって表示されている状態)のですが、Aに配置してあるボタンなどのコントロールが押せてしまいます。Aのコントロールをさわることができないようにしたいのですが、なにか方法はないでしょうか。

どうか宜しくお願いいたします。
じゃんぬねっと です。

■No9160に返信(ひでさんの記事)
> Aに配置してあるボタンなどのコントロールが押せてしまいます。
> Aのコントロールをさわることができないようにしたいのですが、
> なにか方法はないでしょうか。

それが、「モードレス」というものなんですが...
触りたくない、制御を移したくないのならば、モーダル表示するのが普通です。
どうしてもと言われるのならば、Form 自体を Enable->false; で無効にしましょう。
AからBをB->Show()で表示し、続けて<<<B>>>からMessageBoxを表示している
ですよね?
■No9166に返信(中 博俊さんの記事)
> AからBをB->Show()で表示し、続けて<<<B>>>からMessageBoxを表示している
> ですよね?
>

お返事ありがとうございます。説明不足で申し訳ありません。
AでBのインスタンス生成をしてAからB->Show()の後、MessageBox表示しています。
モーダル設定ということでAのEnable = false にした場合、Aにあるリストビューの見た目が少し気になりました。ただ単純にAからMessageBoxを表示したときのようにAの見た目がかわらないようにしたかったのですが、方法が見つかりませんでした。こればかりはしょうがないのでしょうか。
じゃんぬねっと です。

■No9173に返信(ひでさんの記事)
> ただ単純にAからMessageBoxを表示したときのように

え? B から MessageBox 表示じゃあないんですか?
A に対して、オーナ設定をしているのですか?
■No9173に返信(ひでさんの記事)
> AでBのインスタンス生成をしてAからB->Show()の後、MessageBox表示しています。

AからB->ShowDialog()じゃ駄目なの?

DOBON.NET | プログラミング道 | プログラミング掲示板