PictureBoxに図形(矢印)を描画するには?


VB初心者  2009-01-20 23:11:20  No: 141328

マウスで指定した位置に、片方が矢印である線分を描画するアプリケーションを作成したいと思っています。1度目のクリックで線分の始点が、2度目のクリックで線分の終点が指定されるものとします。初心者のためどこが間違ってるか分かりません。アドバイス等お願いします。

[プログラム]
Public Class Form1

    Dim g As Graphics

    Private Sub PictMain_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictMain.MouseDown
        Dim start_x As Integer = e.X
        Dim start_y As Integer = e.Y

        Dim end_x As Integer = e.X
        Dim end_y As Integer = e.Y

  Dim BPen As New Pen(Color.Black, 2)
  BPen.EndCap = LineCap.ArrowAnchor

        g.DrawLine(BPen, start_x, start_y, end_x, end_y)

        PictMain.Invalidate()
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        PictMain.Image = New Bitmap(PictMain.Width, PictMain.Height)
        g = Graphics.FromImage(PictMain.Image)
    End Sub

    Private Sub ButtonClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonClear.Click
        g.Clear(Color.White)
        PictMain.Invalidate()
    End Sub
End Class


魔界の仮面弁士  2009-01-20 23:37:57  No: 141329

> Dim start_x As Integer = e.X
> Dim end_x As Integer = e.X

これだと、start と end が常に同じ座標になってしまいますので、
「1回目」「2回目」の判定を行うコードを足してみてください。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加