Как нарисовать круги на picturebox в VB.NET использование точек из базы данных?
У меня есть коробка с картинками с загруженным изображением. У меня есть 2 способа, которыми я хочу нарисовать круги на изображении. Первый - это щелчок мышью по изображению. Как только щелчок мыши срабатывает, он сохраняет точки в базе данных и рисует круг. Это прекрасно работает.
Private Sub InjectionSites_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles FaceImage.MouseClick Dim sSql As String Dim MyPoint As New Point MyPoint.X = e.X MyPoint.Y = e.Y MarkLocationOnFace(MyPoint) sSql = "insert into Injections (x, y, custid, date, units)" sSql = sSql & " values (" & e.X & ", " & e.Y & ", 1, '" & Now() & "', 2)" Conn.Execute(sSql) End Sub Private Sub MarkLocationOnFace(ByVal myPoint As Point) Dim p As New System.Drawing.Pen(Brushes.Black, 4) Dim g As System.Drawing.Graphics g = FaceImage.CreateGraphics g.DrawEllipse(p, myPoint.X, myPoint.Y, 10, 10) End Sub
Во-вторых, я хочу вспомнить точки, которые были сохранены в базе данных, и построить их обратно на изображение, как они были первоначально нарисованы. Похоже, что подпрограмма работает, но как только появляется picturebox, круги на изображении отсутствуют.
Private Sub LoadPreviousVisit(ByVal MyDate As Date, ByVal CustID As Decimal) Dim sSql As String Dim rs As New ADODB.Recordset Dim mypoint As New Point sSql = "Select * from Injections where CustID = " & CustID sSql = sSql & " and CONVERT(VARCHAR(10),date,101) = '" sSql = sSql & MyDate.ToString("MM/dd/yyyy") & "'" rs.Open(sSql, Conn) Do While Not rs.EOF mypoint.X = rs("X").Value mypoint.Y = rs("Y").Value MarkLocationOnFace(mypoint) rs.MoveNext() Loop FaceImage.SendToBack() End Sub
Что я уже пробовал:
Отправка коробки с картинками на заднюю панель тоже не работает.
Maciej Los
Попробуйте использовать: PictureBox.Метод Invalidate (System.Окна.Формы)[^]