每次运行,即使在相同位置点击,又没有提示错误,但是点击另外位置又会出现错误,下标越界。
请各位大概指教错在哪里?因为我不明白。谢谢
以下是提示错误的代码,标黄错误提示下面这段RaiseEvent ColorClick(Colors(xPs, yPs), Button)
Private Sub UserControl_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim xPs As Long
Dim yPs As Long
xPs = ((x + 1) \ 18) + 1
yPs = ((y + 1) \ 18) + 1
RaiseEvent ColorClick(Colors(xPs, yPs), Button)
End Sub
建议你首先确定x和y的范围,然后选择除数因子,18太小了,180或者1800合适些~
问题已解决,非常感谢@senolyusan 指点,让我知道怎么解决
下面贴出原因:
问题在于UserControl_MouseUp,当用户按住鼠标拖动生成的块,就会出错
你的Colors的定义是什么?这个提示就是指超出了Colors的下标范围。
以下就是关键的代码,麻烦@senolyusan 再指教一下
Public Event ColorClick(Color As OLE_COLOR, Button As Integer)
Private Colors(0 To 8, 0 To 6) As OLE_COLOR
Private Sub DrawPallete()
Dim x, y As Integer
For x = 1 To 8
For y = 1 To 6
Call DrawColor(Colors(x, y))
Next y
Next x
End Sub
Private Sub UserControl_Resize()
Call Size(ScaleX((8 * 18), vbPixels, vbTwips), ScaleY((6 * 18), vbPixels, vbTwips))
End Sub