• ベストアンサー

form上のMouseMoveを受け取りたい

教えて頂けますか? 現在pictureBox上でのMouseMoveのイベントを受け取っていますが、 pictureBoxの子のコントロールの上にマウスが来ると、MouseMoveエベントが途絶えてしまいます。途絶えなくする方法はありますか? もしくはform上のMouseMoveをどんなコントロールの上からでも受ける方法はありますか?マウスの座標が欲しいだけです。 スミマセン。よろしくお願いします。

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

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

コントロールのCaptureプロパティで制御でそうですよ FormのLoadイベントなど適切なイベントで PictureBox1.Capture = True などを実行してみましょう # VB2005ならコントロールのコンテナにはPanelを使ったほうが # いいように思いますよ ... # 開発・実行環境などの情報も投稿しましょう

psychesine
質問者

お礼

ありがとうございます! 試してみます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 現在、VB2005でDrawLineにてPictureBox上にライン

    現在、VB2005でDrawLineにてPictureBox上にラインを描いています。 しかし、VB6とは違いラインを描いているFormが隠れるとラインが消えてしまいます。 PictureBoxのPaintイベントで描くようにすれば良いのでしょうが、ラインを描くのに 数万ループして演算しながら座標を決めてるため、Formが隠れて現れるたびに座標演算処理が働き 重くなり実用的ではありません。 Formが隠れてもラインが消えないように出来れば良いのですが、方法をご存知の方がいらっしゃいましたら 宜しくお願いいたします。

  • C#で親にイベントを投げる方法

    すごく基本的なことかもしれないのですが、ポインタだけでも良いので教えてください。 あるFormにPictureBoxをはりつけてあります。 PictureBoxをマウスでクリックしたときにpictureBox_Click()イベントが発生しますが、このイベントをそのままスルーして、Formに伝えてあげたいのです。 pictureBox.Parent.OnMouseDown()とでもすればいいのかと思っていたのですが、コンパイルエラーでした。 何かすごい勘違いをしているような気もするのですが、お恥ずかしいことに何が悪いのかよくわかりません。ポインタだけでも良いので、どうすれば親にイベントを投げられるのかを教えてください。

  • Form1にForm2を作る

    c++BuilderXE2です。 Vclフォームアプリケーションで作ったForm1に、更にForm2を作ることはできるのでしょうか。 プロジェクトマネージャーにFormコントロールが無いのでできないのでしょうか。 Form2を作る目的は、Form2とForm1はそれぞれ別プロセスで動作させ、かつForm2は子ウインドウのように動作させる、すなわち、Form1の位置を変えると、Form2も移動し、かつForm2はForm1より常に前面に置くためですが、このようなことができるかどうかを確かめたいのです。 他にもっとスマートな方法があればご教示願えれば幸いです。 まったく別のexeのウインドウ(Form2に対応)をForm1からspawn関数により立ち上げることは、テストしているのですが、両者の位置関係が連動しない問題があるのです。SetWindowRectは目的が違うようです。

  • .NETのフォームの上のコントロールについて

    ドラッグで移動可能なFormを作成しようとしています。 Formの上には3つほどPictureboxがFormギリギリの大きさまで埋め尽くしています。 なので、クリックでFormを選択することは出来ません。 この状態でFormのMouseDownイベントを使用することは可能でしょうか? 実質、FormではなくPicturebox1~3をクリックしていることになるのは理解しています。 その状態でフォームごとドラック可能にする方法があれば教えて下さい。

  • VB .net Form_Load時、または関数内でPictureBoxにライン描画を行ないたい。

    Form上にPictureBox,Buttonを配置して、Botton_Click処理時にPictureBox上へのライン描画は Dim g As Graphics = PictureBox1.CreateGraphics g.DrawLine(Pens.Red, 0, 0, 100, 200) g,Dispose() にて行なえましたが、同じような描画を Form_Load時に上記の処理を入れても全く描画されません。Button_Clickイベントのように1クッション置かないと実現できないのでしょうか? Form_Load時、関数内などで周期的にライン描画を 行なってやりたいのですが、どなたか解決方法をご存知の方がいましたら回答の程よろしくお願いいたします。

  • マウスドラッグで四角形を表示するには

    WinXPでVisual Basic 6.0をもちいてアプリケーションを作っています。 Formオブジェクトのデザインのときに、マウスを左クリックしてドラッグすると破線の四角形が表示されますよね。 あれと同じようなものを作成するアプリに実装したいと思っているのですが、どのようにしたら良いでしょうか。 MouseDownとMouseMoveを用いてやってみたのですが、これではForm上が四角ばかりになってしまいました。 良い方法を教えてください。

  • VB2008 Formドラッグ時の描画を早くしたいです..

     こんばんは,質問させていただきます. どうぞよろしくお願いたします.  Formが4つあるアプリを作成しております.いずれをドラッグされた際も これらが一緒に動くように,下のように方法でコーディングいたしました. が,コントロールの数が多いせいか,カクカク動いてしまいます.  (↓Form3をドラッグした際のコードでございます)   Private mousePoint As Point   Private Sub Form3_MouseDown(ByVal sender As Object, _     ByVal e As System.Windows.Forms.MouseEventArgs) _     Handles MyBase.MouseDown     If (e.Button And MouseButtons.Left) = MouseButtons.Left Then       mousePoint = New Point(e.X, e.Y) '位置を記憶     End If   End Sub   Private Sub Form3_MouseMove(ByVal sender As Object, _     ByVal e As System.Windows.Forms.MouseEventArgs) _     Handles MyBase.MouseMove 'マウスが動いたとき     If (e.Button And MouseButtons.Left) = MouseButtons.Left Then       Me.Left += e.X - mousePoint.X       Me.Top += e.Y - mousePoint.Y       Form1.Left += e.X - mousePoint.X       Form1.Top += e.Y - mousePoint.Y       Form2.Left += e.X - mousePoint.X       Form2.Top += e.Y - mousePoint.Y       Form4.Left += e.X - mousePoint.X       Form4.Top += e.Y - mousePoint.Y     End If   End Sub  VBでFormの動きを早くする方法というのは,単純にコントロール数を 減らすか,またはPCのスペックを上げるしか無いのでしょうか・・・?  もしお詳しい方がいらっしゃいましたら,是非とも何かアドバイスを いただきたくお願い申し上げます. どうぞよろしくお願いいたします.

  • 「右クリック でドラッグ&ドロップ」で縦横の移動できるようにしたいです。

    お世話になります。 VB6で質問です。   form [ 1000*1000 ] << A picturebox [300*300 ] << B [A]の真中に[B]を配置して、[B]を「右クリック でドラッグ&ドロップ」で縦横の移動できるようにしたいです。 下記のようにしたところ、マウスのみで動いてしまい「右クリック」が関連しません。 Private Sub picturebox_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)  picturebox.Top = Y End Sub  この場合のプログラムを教えて欲しいです。

  • 配列でValue(値)を表示させる書き方が分かりま

    OSは,Wondows7の664ビット版です。 AutoHotKeyのバージョン 1.1.14.03 です。 配列名:=["100","200","300","400"] For Key, Value in 配列名 { MouseMove,% Value,% Value } return 上のコードは, 座標100の200にマウスカーソルを移動してから 座標300の400の位置に移動させたいのですけど 実行してみると,100の100の位置 200の200の位置 300の300の位置 400の400の位置 へとマウスカーソルが移動してしますます?。 座標100の200の位置に移動して 座標300の400の位置に移動する用に書くにはどのような書き方をするのでしょうか? MouseMoveの第2引数が悪い事は分かっているのですけど,どうやっても思い通りの動きをしません? 教えてもらえないでしょうか。

  • PictureBoxのImageを前面に

     関数のグラフを描くプログラムを作りましたが、グラフが背面にあり、座標平面の格子に消されています。前面に出す方法はありませんか。  FormにPictureBoxを載せ、格子はe.Graphics.DrawLineで描き、グラフはビットマップに描き、PictureBoxのImageで置きました。宜しくお願いします。

このQ&Aのポイント
  • 女性の髪の薄さに悩んでいる方へ、かつらの利用を考えてみましょう。
  • 髪の毛の量が普段の3分の1しかない方へ、かつらをかぶることで自然なボリュームを演出できます。
  • 髪の長さが尻まである方へも、かつらを利用することで長さを気にせずスタイリングができます。
回答を見る