Страница: 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()
 
    
У меня без задания крайтих точек были заоблачные - т.е. он их рисовал за пределами формы, вот их и не видно