どんな助けもありがとう。 ユーザーがマウスをクリックした場所にパネル上に色付きの点を作成するにはどうすればよいですか?マウスクリックの座標を取得してメッセージボックスに出力することはできますが、ユーザーがクリックしたパネルにドットを描画することはできません。
Private Sub createDot(x, y)
MsgBox(x & " " & y)
Dim myGraphics As Graphics = Me.CreateGraphics
Dim myPen As Pen
myPen = New Pen(Drawing.Color.Maroon, 20)
myGraphics.DrawRectangle(myPen, x, y, 1, 1)
End Sub
Private Sub Panel1_MouseClick(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles Panel1.MouseClick
missed += 1
lblMissed.Text = missed
Dim x, y As Integer
x = e.X.ToString
y = e.Y.ToString
createDot(x, y)
End Sub
ありがとう!
回答:
回答№1の場合は3三つの事:
1.パネルに描画する場合は、Me.CreateGraphicsではなくPanel1.CreateGraphicsを使用する必要があります。
2.ペンの幅はドットの大きさになります。代わりに1を使用
3. x、yを文字列に変換せずにcreateDotに渡します
あぶない:
パネルが無効になると(たとえば、別のウィンドウをその上に移動すると)、ドットは消えます。描画コードはPanel1_Paintイベントにあるはずです(Scott Chamberlain)
Private Sub createDot(ByVal x As Integer, ByVal y As Integer)
MsgBox(x.ToString & " " & y.ToString)
Dim myGraphics As Graphics = Panel.CreateGraphics
Dim myPen As Pen
myPen = New Pen(Drawing.Color.Maroon, 1)
myGraphics.DrawRectangle(myPen, x, y, 1, 1)
End Sub
Private Sub Panel1_MouseClick(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles Panel1.MouseClick
missed += 1
lblMissed.Text = missed
createDot(e.x, e.y)
End Sub
回答№2の場合は0
パネル上にドットを作成する場合は、変更する必要があります Me.CreateGraphics
に Panel1.CreateGraphics
ToStringをから削除する
x=e.X
y=e.Y