Как рисовать на PictureBox'e, созданным программным способом (динамически) - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Приветствую всех. При создании объекта PictureBox динамическим способом, почему-то на нем не отображаются элементы Graphics. Уже не знаю что делать, чего только не перепробовал. При этом, если создавать пикчрбокс через панель инструментов, то все работает. Но мне как раз нужно создавать бокс программно.
Листинг программы
  1. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
  2. Dim pic as New PictureBox
  3. Dim gra As Graphics
  4. With pic
  5. .SizeMode = PictureBoxSizeMode.AutoSize
  6. .Size = New Size(400, 300)
  7. .Location = New Point(100, 100)
  8. .Visible = True
  9. .BackColor = Color.Aqua
  10. '.Show()
  11. End With
  12. Me.Controls.Add(pic) 'pic на форме отображается нормально
  13. gra = pic.CreateGraphics()
  14. gra.DrawLine(Pens.Black, 20, 20, 300, 300) 'а вот эту строку будто игнорирует
  15. 'ни один элемент graphics не отображается
  16. pic.Refresh()
  17. End Sub
В чем здесь ошибка? Не откажите в помощи начинающему программисту . Заранее спасибо.

Решение задачи: «Как рисовать на PictureBox'e, созданным программным способом (динамически)»

textual
Листинг программы
  1.        
  2.         Dim pic As New PictureBox, hlst As Bitmap
  3.         With pic
  4.             .SizeMode = PictureBoxSizeMode.AutoSize
  5.             .Size = New Size(400, 300) : .Location = New Point(100, 100)
  6.             .Visible = True : .BackColor = Color.Aqua
  7.         End With
  8.         hlst = New Bitmap(pic.ClientSize.Width, pic.ClientSize.Height)
  9.         Me.Controls.Add(pic)  'pic на форме отображается нормально
  10.         Dim graph As Graphics = Graphics.FromImage(hlst)
  11.         graph.DrawLine(Pens.Black, 20, 20, 300, 300) 'а вот эту строку будто игнорирует
  12.         pic.Image = hlst

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.818 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы