【发布时间】:2016-01-22 19:49:18
【问题描述】:
我已经使用自定义类设置了一个生成 72 个图片框的网格。我现在需要检查用户是否点击了这些对象中的任何一个。
图片框类:
Public Class Tile
Inherits PictureBox
Public Side As Char
Public Spawnable As Boolean
Public Inhabiter As Integer = 000
Public Sub New(ByVal LeftValue As Integer, ByVal TopValue As Integer)
With Me
.Size = New Size(70, 70)
.BringToFront()
.Top = TopValue
.Left = LeftValue
End With
End Sub
End Class
这里是制作网格
Sub SetBoard()
Dim HorizontalCounter, VerticalCounter, TopValue, LeftValue As Integer
TopValue = 90
LeftValue = 275
Do Until VerticalCounter = 6
Do Until HorizontalCounter = 12
Dim BoardTile As New Tile(LeftValue, TopValue)
Tiles.Add(BoardTile)
Controls.Add(BoardTile)
Map.Controls.Add(BoardTile)
LeftValue += 80
HorizontalCounter += 1
'If LeftValue < 800 Then BoardTile.Side = "R" Else BoardTile.Side = "B"
'If LeftValue < 550 Or LeftValue > 1000 Then BoardTile.Spawnable = True Else BoardTile.Spawnable = False
BoardTile.BackColor = Color.Transparent
'If BoardTile.Side = "R" Then BoardTile.BackColor = Color.Red Else BoardTile.BackColor = Color.Blue
'If BoardTile.Spawnable = True Then BoardTile.BackColor = Color.Green
Loop
LeftValue = 275
HorizontalCounter = 0
TopValue += 80
VerticalCounter += 1
Loop
End Sub
【问题讨论】:
-
什么是“网格”?你画的线还是一些控件?没有太多事情要做
-
AddHandler pb.Click, AddressOf pb_Click。创建Private Sub pb_Click(sender As Object, e As EventArgs)方法,使用sender参数判断点击的是哪个框。 -
它只是一组以网格格式设置的图片框
-
试试 Lars 的方法,他有你的解决方案。 @LarsTech,您应该将其作为答案。 :)
-
有人可以扩展 Lars 的评论吗?我明白了它的概念,但是如何将它应用到我的代码中。