- ベストアンサー
form上のMouseMoveを受け取りたい
教えて頂けますか? 現在pictureBox上でのMouseMoveのイベントを受け取っていますが、 pictureBoxの子のコントロールの上にマウスが来ると、MouseMoveエベントが途絶えてしまいます。途絶えなくする方法はありますか? もしくはform上のMouseMoveをどんなコントロールの上からでも受ける方法はありますか?マウスの座標が欲しいだけです。 スミマセン。よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- 現在、VB2005でDrawLineにてPictureBox上にライン
現在、VB2005でDrawLineにてPictureBox上にラインを描いています。 しかし、VB6とは違いラインを描いているFormが隠れるとラインが消えてしまいます。 PictureBoxのPaintイベントで描くようにすれば良いのでしょうが、ラインを描くのに 数万ループして演算しながら座標を決めてるため、Formが隠れて現れるたびに座標演算処理が働き 重くなり実用的ではありません。 Formが隠れてもラインが消えないように出来れば良いのですが、方法をご存知の方がいらっしゃいましたら 宜しくお願いいたします。
- ベストアンサー
- Visual Basic
- C#で親にイベントを投げる方法
すごく基本的なことかもしれないのですが、ポインタだけでも良いので教えてください。 あるFormにPictureBoxをはりつけてあります。 PictureBoxをマウスでクリックしたときにpictureBox_Click()イベントが発生しますが、このイベントをそのままスルーして、Formに伝えてあげたいのです。 pictureBox.Parent.OnMouseDown()とでもすればいいのかと思っていたのですが、コンパイルエラーでした。 何かすごい勘違いをしているような気もするのですが、お恥ずかしいことに何が悪いのかよくわかりません。ポインタだけでも良いので、どうすれば親にイベントを投げられるのかを教えてください。
- ベストアンサー
- C・C++・C#
- Form1にForm2を作る
c++BuilderXE2です。 Vclフォームアプリケーションで作ったForm1に、更にForm2を作ることはできるのでしょうか。 プロジェクトマネージャーにFormコントロールが無いのでできないのでしょうか。 Form2を作る目的は、Form2とForm1はそれぞれ別プロセスで動作させ、かつForm2は子ウインドウのように動作させる、すなわち、Form1の位置を変えると、Form2も移動し、かつForm2はForm1より常に前面に置くためですが、このようなことができるかどうかを確かめたいのです。 他にもっとスマートな方法があればご教示願えれば幸いです。 まったく別のexeのウインドウ(Form2に対応)をForm1からspawn関数により立ち上げることは、テストしているのですが、両者の位置関係が連動しない問題があるのです。SetWindowRectは目的が違うようです。
- ベストアンサー
- C・C++・C#
- .NETのフォームの上のコントロールについて
ドラッグで移動可能なFormを作成しようとしています。 Formの上には3つほどPictureboxがFormギリギリの大きさまで埋め尽くしています。 なので、クリックでFormを選択することは出来ません。 この状態でFormのMouseDownイベントを使用することは可能でしょうか? 実質、FormではなくPicturebox1~3をクリックしていることになるのは理解しています。 その状態でフォームごとドラック可能にする方法があれば教えて下さい。
- 締切済み
- Visual Basic
- 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時、関数内などで周期的にライン描画を 行なってやりたいのですが、どなたか解決方法をご存知の方がいましたら回答の程よろしくお願いいたします。
- 締切済み
- Visual Basic
- マウスドラッグで四角形を表示するには
WinXPでVisual Basic 6.0をもちいてアプリケーションを作っています。 Formオブジェクトのデザインのときに、マウスを左クリックしてドラッグすると破線の四角形が表示されますよね。 あれと同じようなものを作成するアプリに実装したいと思っているのですが、どのようにしたら良いでしょうか。 MouseDownとMouseMoveを用いてやってみたのですが、これではForm上が四角ばかりになってしまいました。 良い方法を教えてください。
- ベストアンサー
- Visual Basic
- 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のスペックを上げるしか無いのでしょうか・・・? もしお詳しい方がいらっしゃいましたら,是非とも何かアドバイスを いただきたくお願い申し上げます. どうぞよろしくお願いいたします.
- ベストアンサー
- Visual Basic
- 「右クリック でドラッグ&ドロップ」で縦横の移動できるようにしたいです。
お世話になります。 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 この場合のプログラムを教えて欲しいです。
- ベストアンサー
- Visual Basic
- 配列で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で置きました。宜しくお願いします。
- ベストアンサー
- Visual Basic
お礼
ありがとうございます! 試してみます。