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