2012-03-08 3 views
0

Привет всем Мне нужна помощь Я хочу, чтобы петля через все ячейки в представлении datagrid, и я хочу проверить все соседние ячейки вокруг него, поэтому мне нужно проверить все направления вокруг ячейки. Это будет 8 направлений (вверх, вниз, влево, вправо, вверх-влево, вверх-вправо, влево-вниз, вправо) И я хочу нарисовать его, если они соседи с черным. Оба из них.DataGridView, цикл через все строки с исключением

Так вот что я сейчас:

for (int x = 0; x < yourGridName.Rows.Count; x++) 
{ 
    //Loop through all cells in that row and change its color. 
    for (int y = 0; y < yourGridName.Rows[x].Cells.Count; y++) 
    { 
     if (dataGridView1.Rows[dataGridView1.SelectedRows[x].Index].Cells[y].Value.ToString() != "YES") 
     yourGridName.Rows[x].Cells[y].Style.BackColor = 
     System.Drawing.Color.Black; 
    } 
    } 
} 
+0

Если я что-то не хватает, не все ячейки внутри datagridview будут иметь 8 соседей? Например, верхняя левая ячейка? Будь осторожен с этими краевыми случаями. – ImGreg

ответ

3

Я понимаю, что вам нужно знать, как получить все 8 соседей для X ячейки сетки/Y.

Если в ячейке сетки [X] [Y], то 8 соседи должны быть

сетки [X] [Y-1] (если Y-1> = 0)
сетки [X] [ Y + 1] (если Y + 1 < Cells.Count)
сетка [X-1] [Y] (если X-1> = 0)
сетка [X + 1] [Y] (если X + 1 < Rows.Count)
сетки [X + 1] [Y + 1] (если Y + 1 < Cells.Count & & Х + 1 < Rows.Count)
сетки [Х-1] [Y-1] (если Y-1> = 0 & & X-1> = 0)

Смежные вопросы