• 締切済み

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

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

  • C# 子フォームを最善面も表示したい

    子フォームを表示させると、親フォーム内にあるラベルやボタンの後ろになってしまいます。 子フォームに this.TopMost = true; を書いてみましたがエラーになってしまいました。 基本的な質問かとは思いますが、よろしくお願いします。

  • 【vb.NET】フォームを閉じる際に他のフォームを制御したい

    Visual Basic 2005で学習中です。 フォーム1とフォーム2があり、 1.フォーム1からボタン1を押してフォーム2を開く。 2.フォーム1のボタン1を押下不可にする。 3.フォーム2を閉じるとフォーム1のボタン1を押せるようにする。 という処理をさせたいのですが、3.の処理がどうしてもできません。 formClosingイベントの中で、ボタン1を押せるようにする処理を書いているのですが、うまくいきません。 良い方法を教えていただきたく思います。お願いします。

  • VBA イベント Exit時にボタンを有効にしたい

    VBAで イベント _Exit(ByVal Cancel As MSForms.ReturnBoolean)が有効(Cancel=True)の場合、ボタンが有効にならない。 例えば、「閉じる」ボタンを押下するとフォームを閉じたいが _Exitの処理が実行される。 _Exit処理を強制終了し ボタンを有効にできるでしょうか?

  • C#のフォーム間のデータの受け渡しについて

    はじめまして。よろしくお願いします。 最近C#をはじめましたがいきなりつまづいてしまいました。 クラスを利用しフォーム間でデータの受け渡しをしたいのですがどうすればいいのでしょうか? 処理は以下のようになっております まず、フォームが2つあります。フォーム1とフォーム2とします。 最初に起動されるのがフォーム1で、フォーム1にはボタンが2つあります。ボタンA、ボタンBとします ボタンA、ボタンBどちらのボタンを押下しても、フォーム2が開きますがどちらを押されてたかをフォーム2のテキストボックス(テキスト2とします)に表示します。 クラスですがフォームが2つとデータ保持のためのクラスが1つ(データ保持クラスとします)があります。 データ保持クラスにはint形のBtnClickプロパティ(get,set)を作成しております。, フォーム1のボタンA押下時処理  データ保持クラスのBtnClickに1を格納し、フォーム2を開きます。 フォーム1のボタンB押下時処理  データ保持クラスのBtnClickに2を格納し、フォーム2を開きます。 フォーム2起動時処理  データ保持クラスのBtnClickから値を取得しフォーム2のテキスト2へ表示します。 で、肝心の質問ですが、データ保持クラスの宣言はどこにすればいいのでしょうか? また、インスタンスはどのタイミングで作成すればいいのでしょうか? フォーム1にpublicとして宣言しインスタンスを作成し、ボタン押下時にBtnClickプロパティーにデータを格納し・・・ というところまではできたのですが、フォーム2で値が取得できないどころか、コンパイルが通りません。 あと、こういうデータ保持クラス使い方って一般的ですか?? 長々と脈略もなく書きましたがご教授ください。どうぞよろしくお願いします。

  • フォームを開く時、にある処理をしたいのですが

    お世話になります フォームを開く時、にある処理をしたいのですが たとえば、フォームAにテキストボックスB、の窓があります このテキストボックス窓にフォームAが表示されると同時に 簡単な情報を表示したいです その情報は別テキストファイル(myFile.txtなど) これらのロジックは自分で考える、として 質問したいのは、 ”フォームを開く時”というイベントの書く場所がみつかりません フォームAをデザインビュで開いて、プロパティをみても イベントのところには、  クイック時  ダブルクイック時  マウスボタンクイック時   ・   ・ 等で、 探している、フォーム開く時、の項目が見つからないのです このフォーム開く時、がどこにあるのか、場所を教えてください よろしくお願いします

  • 他フォームのクリックイベント取得

    VS2005を使ってちょこちょこプログラムの勉強をしています。 現在、同一ソリューション内のフォームの間のイベントを実装出来なくて困っています。 やりたい事は Form1から、Form2を起動し、Form2のボタンをクリックした時に、 Form1でForm2のクリックイベントを取得したいのです。 自分なりに調べてみましたが、該当するようなところが中々見つかりませんでした。 わかる方いましたら、ご教示お願いします。 足らない情報等ありましたら、ご指摘ください。

  • C# スレッドでフォームを扱う

    スレッドとフォームの連携について質問があります。 「開始」ボタンをクリックしたら、 「開始」ボタンのEnableをfalseにして 他のクラスのスレッドで処理を開始します (中断ボタンが押されたら処理をやめるためにスレッド採用) この時、処理が終わったら「開始」ボタンのEnableをtrueに戻したいのです。 デリゲートのコールメソッドを使ったところ、フォームを生成したスレッド以外からフォームををいじってはいけないというエラーがでてしまいました。 [a]ユーザー操作を待ち受けるフォームのスレッド [b]処理系のスレッド このようなスレッドの構成の時、[a]が[b]の処理が終わったことを知り、buttonのプロパティを変更するためには、どうすればよいでしょうか?

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

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

  • TOPMOSTプロパティについて

    C#2010でアプリを作成しております。 フォームを強制的に最前面に発生させるTOPMOSTというプロパティ があります。 このプロパティをtrueとした画面を複数発生させた場合、どの画面が最前面になりますか? 最後(最新)に発生させた画面が最前面になるのでしょうか?

  • ENTERキー押下でフォームを送信したいのに・・・

    PHPとHTMLでフォームをいくつか作り、画像タイプの送信ボタンを押下すると送信されるようにしています。ところが、IEの場合、ENTERキー押下で送信できる(下記のPHPの制御文がtrueになる)ものと、できないものがあります。ボタンをクリックすればいずれも送信できます。また、FirefoxではどのケースでもEnterキー押下で送信できます。送信ボタンはどのフォームでもひとつです。 何がどういう場合に、IEでEnterで送信できないのでしょうか? ○HTML側 <form...> ... <input type="image" name="submit" ...> </form> ○PHP側 if(isset($_POST['submit_x']) { ... }

    • 締切済み
    • PHP

専門家に質問してみよう