- PR -

マウスクリックでFormが最前面に表示されるのを禁止したい

投稿者投稿内容
ZEN73
常連さん
会議室デビュー日: 2003/03/10
投稿数: 43
投稿日時: 2004-11-04 20:58
2つのFormを画面に表示しています。
Form1⇒「デスクトップ画面」を覆い隠す役割を持つ,フルサイズのフォーム
Form2⇒Form1上にあって,メニューを表示している小サイズのフォーム

 Form1上でマウスをクリックすると,当然のことですが,
 「メニュー画面が後ろの隠れてしまい,メニュー操作が不可能になってしまいます。

それで,マウスクリックでFormが最前面に表示されるのを禁止したいのですが,
このことは,可能なのでしょうか。
お教え願います。
[
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2004-11-04 21:28
引用:

それで,マウスクリックでFormが最前面に表示されるのを禁止したいのですが,
このことは,可能なのでしょうか。



Form1 から Form2 を表示する時に、Show() ではなく、ShowDialog() すればいいのではないでしょうか。

_________________
// 渋木宏明 (Hiroaki SHIBUKI)
// http://hidori.jp/
// Microsoft MVP for Visual C#
//
// @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/
ZEN73
常連さん
会議室デビュー日: 2003/03/10
投稿数: 43
投稿日時: 2004-11-05 04:44
引用:

Form1 から Form2 を表示する時に、Show() ではなく、ShowDialog() すればいいのではないでしょうか。


ひどりさん,ありがとうございます。確認できました。

<逆の場合の質問です>
Form2からForm1を表示して,Form1の表示を背後に固定することは可能でしょうか?。(この場合,Form2にmain()があります)

ご教示,よろしくお願いします。
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2004-11-05 05:01
引用:

Form2からForm1を表示して,Form1の表示を背後に固定することは可能でしょうか?。(この場合,Form2にmain()があります)



Form1.ShowDialog() する場合はまず無理です。

Form1.Show() する場合は、Form2 の Owner に Form1 を指定して、Form2 を前面に出せばできそうです。

でも、Form1 の後始末が面倒そうだし、ヘンテコな構造なんでやめたほうがいいでしょうね。

_________________
// 渋木宏明 (Hiroaki SHIBUKI)
// http://hidori.jp/
// Microsoft MVP for Visual C#
//
// @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/
ZEN73
常連さん
会議室デビュー日: 2003/03/10
投稿数: 43
投稿日時: 2004-11-05 05:31
[ひどりさん,ありがとうございました。
とりあえずは,『Form2 の Owner に Form1 を指定』する方法を試みて,
だめだったら,Form1からForm2を表示するよう,コードを書き直してみるつもりです。
ZEN73
常連さん
会議室デビュー日: 2003/03/10
投稿数: 43
投稿日時: 2004-11-05 07:51
引用:

ひどりさんの引用:
ヘンテコな構造なんでやめたほうがいいでしょうね。


その通りでした。途中でやる気も失せて・・・。
それで,発想を変えて「マウスの移動範囲を制限する」ことで
間に合わせました。
soluna
ベテラン
会議室デビュー日: 2004/06/15
投稿数: 59
投稿日時: 2004-11-05 10:35
Showする前にOwnerを設定してあげて下さい。

# うーん、VCLの知識が役に立つ。
# コンストラクタにあっても良いと思うけどなかったなぁ。
ZEN73
常連さん
会議室デビュー日: 2003/03/10
投稿数: 43
投稿日時: 2004-11-05 11:48
引用:

solunaさんの書き込み (2004-11-05 10:35) より:
Showする前にOwnerを設定してあげて下さい。



この「Ownerの設定」のしかたを,易しく解説していただけないでしょうか?

引用:

発想を変えて「マウスの移動範囲を制限する」ことで間に合わせました。


実際にやってみると,これもかなり面倒なことがわかりました。
(なにせ,メニューから20あまりのフォームを個々に開いてメニューに戻るのですが,その都度に移動範囲を設定しなければならない状況ですので)

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