エラーの出ているコード
Public Class Form1
Dim startX As Integer
Dim startY As Integer
Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
Handles Me.MouseDown
If e.Button = Windows.Forms.MouseButtons.Left Then
startX = e.X
startY = e.Y
End If
End Sub
Private Sub Form1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
Handles Me.MouseUp
If e.Button = Windows.Forms.MouseButtons.Left Then
LineInput(startX, startY) - (e.X,e.Y) Color.Blue
End If
End Sub
End Class
ようこそ、くりーむぱん さん
実は、と言いますか、VBを勉強しながらテキストを作っています。VB6の時のようにはグラフィックスは使えないようで、詳しくはわかりません。
しかし、とりあえず、やってみました。コードをコピーして入力すると、
LineInput(startX, startY) - (e.X,e.Y) Color.Blue
でエラーがでます。そもそもLineInputはファイルからデータを入力する関数で、グラフィクス描画には関係ありません。
以前のBASICではLINE命令で直線が描画できました。そこでInputを消して次のようにしてみました。
Line(startX, startY) - (e.X,e.Y) Color.Blue
まだ、エラーはでますが、メッセージの中に「グラフィックス機能は'System.Drawing.Graphics.DrawLine'として使用できます。」とあります。
そこで、LineをGraphics.DrawLineに変更して次のようにしてみました。
graphics.drawline(startX, startY) - (e.X,e.Y) Color.Blue
まだ、エラーがでます。ここで、drawlineにカーソルをあわせて[F1]キーを押してヘルプをみました。すると、ヘルプに直線を描画するサンプルが出てきました。
Dim myPen As New System.Drawing.Pen(System.Drawing.Color.Red)
Dim formGraphics as System.Drawing.Graphics
formGraphics = Me.CreateGraphics()
formGraphics.DrawLine(myPen, 0, 0, 200, 200)
myPen.Dispose()
formGraphics.Dispose()
これをMouseUpのメソッドに組み込んでみました。
Private Sub Form1_MouseUp(ByVal sender As Object, _
ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseUp
Dim myPen As New System.Drawing.Pen(System.Drawing.Color.Red)
Dim formGraphics As System.Drawing.Graphics
If e.Button = Windows.Forms.MouseButtons.Left Then
formGraphics = Me.CreateGraphics()
formGraphics.DrawLine(myPen, startX, startY, e.X, e.Y)
myPen.Dispose()
formGraphics.Dispose()
End If
End Sub
これで、とりあえずフォームに直線が描画できました。
これを足がかりにヘルプやネットなどでいろいろ調べてみてください。
それでは、またいつでもどうぞ。
Private Sub Form_MouseDown(ByVal Button As Integer, ByVal Shift As Integer,
ByVal X As Single, ByVal Y As Single)
If Button = 1 Then
Label1.Left = X
Label1.Top = Y
End If
End Sub
Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
Handles Me.MouseDown
If e.Button = Windows.Forms.MouseButtons.Left Then
Label1.Left = e.X
Label1.Top = e.Y
End If
End Sub