用这种方法绘制图像?

时间:2009-05-03 04:43:16

标签: c# graphics drawing

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

2 个答案:

答案 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