0

我有点击时启动的事件功能,其中我有一个图形指令

    private void pictureBox1_Click(object sender, EventArgs e)
    {
        switch (modCLick)
        {
            case 2: 
                    session.g.FillRectangle(Brushes.Tomato, MousePosition.X, MousePosition.Y, 50, 100);
                break;
        }
        ModCLick = 1;
    }

当我启动程序时,单击什么也不做,但是如果我按下一个键(仅限某些键),则应用更改(我可以看到矩形)。为什么没有正确更新?PS:不要担心案例说明。

4

1 回答 1

1

将 Graphics 实例存储在全局变量中是一个非常糟糕的主意。让它看起来像这样:

using (var g = Graphics.FromImage(pictureBox1.Image)) {
   g.FillRectangle(Brushes.Tomato, MousePosition.X, MousePosition.Y, 50, 100);
   pictureBox1.Invalidate();
}

Invalidate() 调用是您要查找的调用。PictureBox 只能告诉你改变了 Image 属性,它不能告诉你改变了图像内容

于 2013-08-23T17:34:28.943 回答