Страница: 1 |
Страница: 1 |
Вопрос: Создание фигур
Добавлено: 28.01.12 14:15
Автор вопроса: Grang
Доброе время суток. Программа при запуске должна рандомно создавать прямоугольники (или раскидывать существующие, но это я не знаю как это сделать). Участки кода, использующие координаты фигур работают (очевидно фигуры создаются), но прямоугольников не видно.
Public Function pregcoords() As System.Drawing.Point
Dim coord As New System.Drawing.Point(250, Int(Rnd() * Me.Height))
pregcoords = coord
End Function
Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load
For i = 0 To 5
maspreg(i) = New Microsoft.VisualBasic.PowerPacks.RectangleShape
maspreg(i).Location = pregcoords()
maspreg(i).Visible = True
Next
End Sub
Как отобразить фигуры?
Ответы
Всего ответов: 10
Номер ответа: 1
Автор ответа:
Cramper
Вопросов: 15
Ответов: 93
Профиль | | #1
Добавлено: 30.01.12 09:32
Public Class Form1
 im X, Y, i As Integer
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 im GraphicsFun As System.Drawing.Graphics
GraphicsFun = Me.CreateGraphics
 im BrushColor1 As New SolidBrush(Color.Red)
'GraphicsFun.FillRectangle(BrushColor1, 10, 10, 100, 100)
For i = 1 To 100
X = Rnd() * Me.Width
Y = Rnd() * Me.Height
GraphicsFun.DrawRectangle(Pens.Red, X, Y, 100, 100)
Next
End Sub
End Class
Номер ответа: 2
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #2
Добавлено: 31.01.12 06:24
Может еще надо цвет задать, по дефолту он может быть прозрачным или равным цвету формы
Номер ответа: 3
Автор ответа:
Grang
Вопросов: 1
Ответов: 3
Профиль | | #3
Добавлено: 31.01.12 20:27
Cramper, почему-то тоже не работает. Можно ли будет потом получить координаты прямоугольников, построенных из drawing.graphics?
Artyom, цвет и способ заливки установил - не помогло. Me.controls.add я уже пробовал: "Невозможно преобразовать значение типа "Microsoft.VisualBasic.PowerPacks.RectangleShape" в "System.Windows.Forms.Control"."
Номер ответа: 4
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #4
Добавлено: 01.02.12 04:09
Перетяни с тулбокса на форму этот Shape и посмотри какой код сгенерится
Номер ответа: 5
Автор ответа:
Cramper
Вопросов: 15
Ответов: 93
Профиль | | #5
Добавлено: 01.02.12 08:14
С каким VB работаете? Мой код в VB 2010 (VS 2010). Координаты прямоугольников потом получить прямо не получится. Это чисто рисунок на форме.
Номер ответа: 6
Автор ответа:
Grang
Вопросов: 1
Ответов: 3
Профиль | | #6
Добавлено: 02.02.12 18:32
Artyom, в vb почему-то просто при добавлении код не генерится (в отличие от vc++).
Cramper, тоже vb2010.
Ладно спасибо, подумаю чем заменить.
Номер ответа: 7
Автор ответа:
Grang
Вопросов: 1
Ответов: 3
Профиль | | #7
Добавлено: 02.02.12 20:12
Всё, нашёл где код, который автоматом создаётся. Попробую скопировать.
Номер ответа: 8
Автор ответа:
SHDZ
ICQ: 209382104
Вопросов: 39
Ответов: 244
Профиль | | #8
Добавлено: 13.02.12 15:08
На сколько понимаю - рисовать нужно в событии Paint, потому как после загрузки идет отрисовка и все что ты намалевал стирается
Номер ответа: 9
Автор ответа:
SHDZ
ICQ: 209382104
Вопросов: 39
Ответов: 244
Профиль | | #9
Добавлено: 13.02.12 16:24
Проверил на шарпе - все рисует
Номер ответа: 10
Автор ответа:
SHDZ
ICQ: 209382104
Вопросов: 39
Ответов: 244
Профиль | | #10
Добавлено: 13.02.12 16:25
Проверял какие координаты генерит RND()
У меня без задания крайтих точек были заоблачные - т.е. он их рисовал за пределами формы, вот их и не видно