public void GridCreate()
{
Graphics g = pictureBox1.CreateGraphics();
SolidBrush brushBlack = new SolidBrush(Color.Black);
Rectangle[,] block = new Rectangle[16, 16];
for (int i = 0; i <= block.GetLength(0) - 1; i++)
{
for (int n = 0; n <= block.GetLength(0) - 1; n++)
{
block[n, i] = new Rectangle(i * blockSize, n * blockSize, 20, 20);
g.FillRectangle(brushBlack, block[n, i]);
}
}
data.block = block;
}
private void Form1_Shown(object sender, EventArgs e)
{
GridCreate();
}
我正在尝试使用 PictureBox 在 WindowsForms 中制作网格,但相关代码无法正常data.block = block;
工作。这部分有效,但这g.FillRectangle(brushBlack, block[n, i]);
根本不起作用。我认为问题出在Form1_Shown
事件中,因为:
private void Form1_Click(object sender, EventArgs e)
{
GridCreate();
}
执行得非常好。
覆盖protected override void OnShown(EventArgs e)
给出与 相同的结果Form1_Shown
。