• 締切済み

マウスクリック時のフォームについて

VS2005で勉強中の初心者です。 今実験的につくっているアプリがあるのですが わからないところがあるので質問させて下さい。 今仮にフォーム1とフォーム2があるとして フォーム2はプロパティでTopMostをTrueにしてあるとします。 ここで例えば、フォーム1のコントロールを操作し その後フォーム2のボタン1を押す操作をしたいような場合 フォーム2のボタンを押下しようとクリックしても 最初の1度目ではフォーム2がアクティブな状態になるだけで ボタンを押す行動が実行されません。 フォーム2からフォーム1へ移る場合も同じ状態になります。 どちらのフォームがアクティブな状態だとしても 操作をすぐに受け入れるように作りたいと思って マウスイベントによってフォームの状態を変更するようなものを 書こうと思ったのですが それは遠回りな方法で、本当はフォームのプロパティ等で簡単に 設定できるものなのかもしれないと考え、質問させていただきました。 つたない説明で申し訳ありませんが よろしくお願いいたします。

みんなの回答

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

状況がつかみにくいんですが … Form1、Form2がある Form2はTopMostがTrue From1のLoadイベントなどで Form2.Show()などを実行してともに表示している Form1側のコントロールの操作で何かのイベントが実行される その後Form2側のボタンなどをしても イベントが発生しない ということでしょうか? Form1、Form2 をプロジェクトに挿入 ともに Button1を配置 ボタンのClickイベントに MsgBox( me.Name ) を記述 Form1のLoadイベントで Form2.TopMost = True Form2.Show() を記述 といった状態で テストしましたが Form2のボタンは1回目のクリックでMsgBoxを表示しますよ

sasieni
質問者

補足

早速のご回答ありがとうございます。 そうですか…。何か勘違いをしているのかもしれません。 もういろいろ試してみようと思います。 それから、私の説明が良くなかったのですが、 TopMostプロパティは直接関係ないようです。 選択された状態(タイトルバーが濃くなっている)のフォームから それ以外のフォームへと操作を移す時 1度目のクリックではそのフォームがアクティブな状態になるのみで 目的のコントロールを操作することができないという状況です。

関連するQ&A