private void button7_Click(object sender, EventArgs e)
        {
            int s = 0;
            dataGridView1.RowCount = 3;
            dataGridView1.ColumnCount = 5;
            Random r = new Random();
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 5; j++)
                {
                    dataGridView1.Rows[i].Cells[j].Value = r.Next(-50, 50);
                }
            }
            int[,] array = new int[3,5];
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 5; j++)
                {
                    array[i,j] = (int)dataGridView1.Rows[i].Cells[j].Value;
                   if (array[i,j] < 0 && array[i++,j++] >= 0 || array[i,j] >= 0 && array[i++,j++] < 0) //Пишет — «Индекс находится вне границ массива»
                    {
                        s++;
                    }
                    label23.Text = Convert.ToString(s);
                }
            }
        }array[i,j] < 0 && array[i++,j++] >= 0 || array[i,j] >= 0 && array[i++,j++] < 0запустите в дебаггере/интерактивной консоли и проверьте действительно ли это будет работать как вы думали. подозреваю что вы хотели получить все-же другой результат