2013-11-04 64 views
0

我已經寫在VB.net一些代碼,創建用戶控制三個10×10網格,並在運行時使他們在Windows窗體上,每個用戶控制存儲在列表中。 我需要能夠找到鄰近當前一個方格,我遇到的問題是,名單只是從1到100,就會簡單得多,如果我可以說,存儲在用戶控件array(xposition,yposition)然後我可以說相鄰的正方形是xposition + -1和yposition + -1,但我不知道如何做到這一點。查找相鄰方格(用戶控件)

讚賞任何幫助,謝謝。控制指標的

回答

1

10×10的網格佈局:

0 1 2 3 4 5 6 7 8 9 
10 11 12 13 14 15 16 17 18 19 
20 21 22 23 24 25 26 27 28 29 
30 31 32 33 34 35 36 37 38 39 
40 41 42 43 44 45 46 47 48 49 
50 51 52 53 54 55 56 57 58 59 
60 61 62 63 64 65 66 67 68 69 
70 71 72 73 74 75 76 77 78 79 
80 81 82 83 84 85 86 87 88 89 
90 91 92 93 94 95 96 97 98 99 

Const gridWidth=10 

Dim idx = CtrlList.IndexOf(current control) 
Dim leftIndex = If(idx Mod gridWidth > 0, idx - 1, idx) 
Dim rightIndex = If(idx Mod gridWidth < gridWidth - 1, idx + 1, idx) 
Dim upIndex = If(idx - gridWidth >= 0, idx - gridWidth, idx) 
Dim downIndex = If(idx + gridWidth < CtrlList.Count - 1, idx + gridWidth, idx) 
0

嘗試

Dim UserControlList As List(Of List(Of UserControl))。現在

爲您加載到形式向用戶控件,把每一行到一個列表中,然後該列表添加到UserControlList。

現在你已經有了一個2維列表,並UserControlList(3)(5)在第四(指數3)行的第六屆(索引5)控制。 UserControlList(2)(5),UserControlList(4)(5),UserControlList(3)(4),UserControlList(3)(6)。