У меня есть пользовательский элемент управления WinForms, и я пытаюсь нарисовать 15 строк по 15 квадратов. Если размер элемента управления изменится, квадраты должны стать меньше, но все равно иметь 15 рядов по 15 квадратов, как показано в этом примере:
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
Я пытаюсь использовать ClientSize.Width
и ClientSize.Height
, чтобы разделить на 15, но это не совсем верно. Любая помощь с этим алгоритмом будет оценена!
Кстати, это в C #.
Вот код, который у меня есть:
Графика g = e.Graphics;
g.DrawRectangle(Pens.Black, 0, 0, ClientSize.Width - 1, ClientSize.Height - 1);
if (ClientSize.Width > ClientSize.Height)
{
int ndx = (int)Math.Ceiling(ClientSize.Height/15f);
for (int x = 0; x < ClientSize.Width; x += ndx)
{
for (int y=0 ; y<ClientSize.Height; y+=ndx)
{
g.DrawLine(Pens.Black, x, y, x + ndx, y);
g.DrawLine(Pens.Black, x, y, x, y + ndx);
}
}
}
else
{
int ndx = (int)Math.Ceiling(ClientSize.Width / 15f);
for (int x = 0; x < ClientSize.Width; x += ndx)
{
for (int y = 0; y < ClientSize.Height; y += ndx)
{
g.DrawLine(Pens.Black, x, y, x + ndx, y);
g.DrawLine(Pens.Black, x, y, x, y + ndx);
}
}
}
g.Dispose();