-PR-
解決済み

VBで子フォーム以外をマウスダウンすると子フォームが閉じる

  • 暇なときにでも
  • 質問No.64985
  • 閲覧数326
  • ありがとう数5
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 74% (476/640)

Visual BASICで Mainフォームからある操作をしたときに、子フォーム(グリッド)を 「子フォーム名.show」 の命令で表示させています。
その子フォームを閉じたくないのに、Mainフォームをマウスでクリックすると子フォームが閉じてしまいます。
べつに、Mainフォームのマウスダウンイベントで子フォームを閉じる命令は記述していないのですが。
また、「子フォーム名.show」と「子フォーム名.visual=true」とではなにが違うのですか?
分かる方がおられましたが教えてください。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.2
レベル7

ベストアンサー率 77% (14/18)

Mainフォームがアクティブになっているだけで、子フォームは
閉じられていないのではないでしょうか?

子フォーム名.Show vbModeless, Me

とすれば、親フォームより後ろになることはありません。

まあ、親フォームを触らせないようにするのなら、

子フォーム名.Show vbModal

でもよいですが・・・。
お礼コメント
greenhope

お礼率 74% (476/640)

ご教示ありがとうございました。なるほど、子フォームは消えてはいず、下に隠れていました。子フォーム名.Show vbModeless, Me として解決しました。
今後ともよろしくお願いします。
投稿日時 - 2001-04-19 23:12:04
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.1
レベル10

ベストアンサー率 32% (54/165)

要するに親フォームから呼び出された子フォームが表示されている間は親フォームの操作ができないようになればいいのですよね?
子フォームを開くときに
「子フォーム名.show 1」
と記述してください。
そうすると子フォームが表示されている間は親フォームの操作は行えなくなるので、勝手に消えちゃうことはなくなりますよ。

showとVisual=Trueは表示する処理と見えないように表示しているものを見えるようにすると言うような違いがあるのではないでしょうか。
だからVisual=falseの状態でshowとしても表示されないと思います。
お礼コメント
greenhope

お礼率 74% (476/640)

ご教示ありがとうございました。子フォームは消えてはいず、下に隠れていました。「子フォーム名.show 1」 とすると、不用意にメインフォームに戻らなくできることが確かめられました。これは使えそうです。今後ともよろしくお願いします。
投稿日時 - 2001-04-19 23:16:47
  • 回答No.3
レベル9

ベストアンサー率 45% (9/20)

まず、Visual=TrueではなくてVisible=Trueです。
これについてはヘルプのVisibleプロパティ項に下記の記載があります。
「フォームの Show メソッドまたは Hide メソッドを使うことは、フォームの Visible プロパティをコードで真 (True) または偽 (False) に設定することと同じです。」
という事なので素直に
Show = (Visible = True)
Hide = (Visible = False)
と考えましょう。

また、子フォーム表示中に親フォームをクリック出来る
という事は、間違い無く、モードレスウィンドウで
表示させていると思われますが、このとき親フォームを
クリックして子フォームが閉じられることは絶対に
ありません。したがって、イベントプロシージャに
Unloadが記述されている可能性大です。
MouseDownイベントだけではなく、
子フォームのClick、Activateイベント
あるいは子フォームのLostFocusイベントなども
調査する必要があるのではないでしょうか?
シングルステップでデバックしてみてはいかがでしょうか。
お礼コメント
greenhope

お礼率 74% (476/640)

詳しい解説、ありがとうございました。 Visible と Show の関係が似ていてよく分からなかったのでが、これで明快になりました。
今後ともよろしくお願いします。
投稿日時 - 2001-04-19 23:20:56
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


専門家があなたの悩みに回答!

-PR-

ピックアップ

-PR-
ページ先頭へ