728x90
반응형
Public Class Form1
Dim rnd As New Random
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim Parent As New PictureBox '// 새로운 픽쳐박스 생성
Parent.Size = New Size(Me.ClientRectangle.Width, Me.ClientRectangle.Height) '// 폼 내부사이즈만큼
Parent.Location = New Point(0, 0) '// 시작위치는 0
Parent.SizeMode = PictureBoxSizeMode.Zoom '// 이미지 사이즈 모드 줌
Me.Controls.Add(Parent) '// 픽쳐박스 삽입
Dim i As Integer = rnd.Next(2, 6) '// 랜덤 행갯수
Dim n As Integer = rnd.Next(2, 6) '// 랜덤 열갯수
Dim W As Double = Parent.Width / n '// 구역의 넓이를 열갯수만큼 나눔
Dim H As Double = Parent.Height / i '// 구역의 높이를 행갯수만큼 나눔
Dim P As PictureBox '// 구역에 사용할 픽쳐박스
For x As Integer = 1 To i * n '// 전체 구역의 수량만큼
P = New PictureBox '// 새로운 픽쳐박스 생성
P.Size = New Size(W, H) '// 사이즈를 구역에 맞추어
P.Top = ((x - 1) \ n) * H '// 윗쪽 시작점 지정
P.Left = ((x - 1) Mod n) * W '// 왼쪽 시작점 지정
P.Name = "area_" & x '// 이름 지정
P.Tag = x '// 태그 설정
'// Color.Transparent '// 구역을 보기 위해서 랜덤컬러적용 실제 라이브시 Transparent로 설정
P.BackColor = Color.FromArgb(75,
rnd.Next(0, 255),
rnd.Next(0, 255),
rnd.Next(0, 255))
P.Parent = Parent '// 부모객체 지정
'// 구역이 눌리면 실행되는 익명 매소드
AddHandler P.MouseClick, Sub(S, O)
With CType(S, PictureBox)
.BackColor = Color.FromArgb(75,
rnd.Next(0, 255),
rnd.Next(0, 255),
rnd.Next(0, 255))
MsgBox(String.Concat(.Tag, "번째 ", .Name.Split("_"c).First, "클릭"))
End With
End Sub
Parent.Controls.Add(P) '// 컨트롤 삽입
Next
Parent.Load("https://i.ytimg.com/vi/67qJHS9u0dM/maxresdefault.jpg") '// 이미지 로드
End Sub
End Class
반응형
댓글