private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
NumberOfBets++;
if ((e.X >= 40 && e.X <= 125) && (e.Y >= 0 && e.Y <= 26))
{
bettingStatus[0]++;
for (int x; x < 10; x++)
{
Graphics graphic = (???)
}
}
我正在尝试在此MouseDown方法中绘制图像。我不知道“(???)”部分的内容。
答案 0 :(得分:1)
// Create a Graphics object for the pictureBox1 control.
Graphics g = pictureBox1.CreateGraphics();
了解详情:MSDN: Graphics Class
您应该在Paint事件中绘制,因为如果不这样做,如果重新绘制控件,则会丢失图形。传递给Paint事件处理程序的PaintEventArgs有一个名为Graphics(类型为System.Drawing.Graphics)的属性,您可以在其上绘制。
答案 1 :(得分:0)
您需要从某个地方获取Graphics
,可能是pictureBox1
:
Graphics graphic = pictureBox1.CreateGraphics();
...但是你确定要在MouseDown
事件处理程序中绘图吗?如果重绘任何部分,它将不会重新绘制。您可能最好在Paint
事件处理程序中完成所有绘图并在MouseDown
中设置标记。然后使您想要重绘的区域无效以绘制新图像。
或者,如果您的图片更加静态,您可以创建Bitmap
,在其上绘图,然后将Image
的{{1}}设置为PictureBox
1}}而不是。例如:
Bitmap