我正在尝试使用C#Windows窗体为步步高游戏编写服务器客户端应用程序: 服务器端: 我有一个带有步步高板图像的图片框,我需要在它上面绘制检查器。 到目前为止我写了这个。
private void drawboard()
{
int x = 82, y = 64;
for (int s = 0; s < 6; s++)
{
darkstone[s] = new PictureBox();
this.Controls.Add(darkstone[s]);
darkstone[s].Location = new Point(x, y);
darkstone[s].BackColor = Color.Black;
x += 60;
darkstone[s].Paint += new PaintEventHandler(stone_Paint);
}
}
private void stone_Paint(object sender, PaintEventArgs e)
{
SolidBrush blackbrush = new SolidBrush(Color.Black);
int x = 32, y = 20;
for (int i = 0; i < 6; i++)
{
e.Graphics.FillEllipse(blackbrush, x, y, 25, 23);
y += 22;
}
SolidBrush whitebrush = new SolidBrush(Color.White);
int z = 32, w = 350;
for (int j = 0; j < 6; j++)
{
e.Graphics.FillEllipse(whitebrush, z, w, 25, 23);
w -= 22;
}
blackbrush.Dispose();
whitebrush.Dispose();
}
当我的表单加载时,我调用了方法drawboard(),但没有绘制任何检查器。 无论如何,如果我定义了一个picturebox_paint事件,并调用方法stone_paint(),则会在棋盘上绘制检查器。但是这个解决方案并不理想,因为我需要将每个检查器表示为一个pictureBox,就像方法drawboard()一样,用于以后的目的,例如在棋盘上移动检查器。
我的代码出了什么问题?