Последняя строка на сетке не отображается - PullRequest
2 голосов
/ 12 марта 2012

Я рисую сетку в PictureBox с GDI + и C # со следующей функцией и значениями:

nbTilesX = 5;
        nbTilesY = 5;
        tileWidth = 64;
        tileHeight = 64;

public void DisplayGrid()
    {
        Pen pen = new Pen(Color.Black);
        pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash;

        for (int i = 0; i <= nbTilesX; i++)
        {
            this.graphic.DrawLine(pen, i*tileWidth, 0, i*tileWidth, nbTilesY*tileHeight);

        }       
        for (int j = 0; j <= nbTilesY; j++)
        {
            this.graphic.DrawLine(pen, 0, j*tileHeight, nbTilesX*tileWidth, j * tileHeight);
        }
        this.graphic.Dispose();     
    }

Вот результат: http://www.hostingpics.net/viewer.php?id=285423grille.jpg (Я не могу напрямую загрузить изображение здесь, потому что я недавно зарегистрированный пользователь ... извините)

Пропущены как горизонтальные, так и вертикальные последние строки. Даже если я поставлю «for (int i =; i <= 30; i ++)», результат все тот же. За пределами области ничего не нарисовано. </p>

Может ли кто-нибудь мне помочь? Спасибо, новичок.

1 Ответ

0 голосов
/ 12 марта 2012

Можете ли вы показать код, где вы создаете экземпляр своего управления?

Когда i==5 или j==5, координата равна 320. Проблема в том, что, если ваш график установлен на 320x320, это основано на 0 (от 0 до 319), поэтому координаты выходят за границы.

...