我有一個WinForms用戶控件,我試圖繪製15個15格的正方形。如果控制的大小而變化,那麼平方應該越來越小,但仍然有15行15個平方,這樣的模式:在用戶控件中創建15x15正方形網格
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
OOOOOOOOOOOOOOO
我試圖使用ClientSize.Width
和ClientSize.Height
了15分,但其沒有完全正確地出現。任何幫助這個算法,將不勝感激!順便說一句,這是用C#編寫的。
這裏是我的代碼:
Graphics 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();
那麼,「沒有完全正確地出現」是什麼意思? (*有用的*問題描述*和*代碼,請) – 2012-03-19 02:16:21
「沒有完全正確地出現」意味着當我調整用戶控件的大小時,通常會在末尾添加一行或缺少一行 – Icemanind 2012-03-19 02:20:40
除非該部門是完美的會有一點區別。但是,這聽起來像是由四捨五入錯誤引起的。我會建議總是通過向下舍入來拍攝*低*邊,然後使用該(積分)值作爲循環中的乘數。請記住,每個網格單元格可能應包含其右下邊緣(繪圖時),並應在初始總大小計算中考慮整個網格的左上邊緣。 – 2012-03-19 02:25:02