none
PictureBox 内の座標をMouse Click で取得する方法 RRS feed

  • 質問

  • Visual Basic 2008 を初めて3か月の初心者です。

    form内にを配置してグラフを作成しています。座標サイズの変更や設定などができるように
    なり、次にmouse clickやdownイベントで座標データ(point)を取得したいのですが、方法が
    よくわかりません。

    form 内 の座標は、次のようなイベントハンドラを作成してTextBoxに表示できるようになりましたが、
    PictureBox内の座標は取得できません。
    ----------------------
     Private Sub Form1_MouseClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseClick
            TextBox1.Text = e.X & "," & e.Y & vbCrLf
        End Sub
    -----------------------
    ほしい情報は、自分で設定したPictureBox内のMouse clickした時の座標dataです。


    初心者の為、基本的な事が分かっていない可能性がありますが、最も基本的な方法をアドバイスいただきたい。
    2009年3月15日 11:31

回答

  • M_アトラン さん の発言:

    form 内 の座標は、次のようなイベントハンドラを作成してTextBoxに表示できるようになりましたが、
    PictureBox内の座標は取得できません。
    ----------------------
     Private Sub Form1_MouseClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseClick
            TextBox1.Text = e.X & "," & e.Y & vbCrLf
        End Sub
    -----------------------
    ほしい情報は、自分で設定したPictureBox内のMouse clickした時の座標dataです。

    PictureBox1のMouseClickイベントを設定して下さい。
    やり方としてはPictureBox1を選択した状態で、プロパティウィンドウの稲妻みたいなマークをクリックして表示される場所のMouseClickの箇所をダブルクリックします。

    画面的にはこんな感じ。(個人blogです)
    http://azulea.wordpress.com/2009/03/15/mouseclick%e3%82%a4%e3%83%99%e3%83%b3%e3%83%88%e3%82%92%e8%a8%ad%e5%ae%9a%e3%81%99%e3%82%8b/


    解決した場合は、参考になった返信に「回答としてマーク」のボタンを利用して、回答に設定しましょう(複数に設定できます)。
    2009年3月15日 14:25
    モデレータ

すべての返信

  •  PictureBoxのMouseDownイベントで取れます。 引数か、その配下に座標があります。
    VB2008 Helpで、PictureBoxのMouse何々というイベントを全て調べるぐらいの根性?が必要では。
    2009年3月15日 14:16
  • M_アトラン さん の発言:

    form 内 の座標は、次のようなイベントハンドラを作成してTextBoxに表示できるようになりましたが、
    PictureBox内の座標は取得できません。
    ----------------------
     Private Sub Form1_MouseClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseClick
            TextBox1.Text = e.X & "," & e.Y & vbCrLf
        End Sub
    -----------------------
    ほしい情報は、自分で設定したPictureBox内のMouse clickした時の座標dataです。

    PictureBox1のMouseClickイベントを設定して下さい。
    やり方としてはPictureBox1を選択した状態で、プロパティウィンドウの稲妻みたいなマークをクリックして表示される場所のMouseClickの箇所をダブルクリックします。

    画面的にはこんな感じ。(個人blogです)
    http://azulea.wordpress.com/2009/03/15/mouseclick%e3%82%a4%e3%83%99%e3%83%b3%e3%83%88%e3%82%92%e8%a8%ad%e5%ae%9a%e3%81%99%e3%82%8b/


    解決した場合は、参考になった返信に「回答としてマーク」のボタンを利用して、回答に設定しましょう(複数に設定できます)。
    2009年3月15日 14:25
    モデレータ
  • 大変 参考になりました。

    PictureBoxの座標が取得でき、グラフの加工や移動がmouse の右/左を使ってできるようになりました。

    また、イベントハンドラの記述方法について、以前 参考書で見た記憶がありますが、

    最近は、helpを見てひたすら、タイプしていました。


    ありがとうございました。
    2009年3月17日 14:02