0
    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 方法中绘制图像。我不知道“(???)”部分的内容。

4

2 回答 2

1
// Create a Graphics object for the pictureBox1 control.
Graphics g = pictureBox1.CreateGraphics();

阅读更多:MSDN:图形类

您应该在 Paint 事件中进行绘制,因为如果不这样做,如果重新绘制控件,您将失去绘图。传递给 Paint 事件处理程序的 PaintEventArgs 具有一个名为 Graphics 的属性(类型为 System.Drawing.Graphics),您可以在其上进行绘图。

于 2009-05-03T04:59:25.540 回答
0

您需要Graphics从某个地方获取,可能pictureBox1在您的情况下:

Graphics graphic = pictureBox1.CreateGraphics();

...但是您确定要在MouseDown事件处理程序中绘图吗?如果任何部分被重绘,它将不会被重绘。您最好在Paint事件处理程序中完成所有绘图并设置一个标志MouseDown。然后使要重绘的区域无效以绘制新图像。

或者,如果您的图像将更加静态,您可以创建一个Bitmap,在其上绘制,然后将Image您的设置PictureBox为指向Bitmap。例如:

Bitmap bmp = new Bitmap(200, 100);
Graphics graphics = Graphics.FromImage(bmp);
//do drawing here
pictureBox1.Image = bmp;
于 2009-05-03T04:55:10.213 回答