PictureBox不会在RotateFlipType之后重绘,但它适用于断点

时间:2013-12-01 00:43:12

标签: c# breakpoints picturebox redraw

我简化了这一点,以确保没有其他事情发生。所以我有一个Windows窗体应用程序,1个窗体,1个按钮和1个图片框。以下是我添加的唯一代码。

    private void button1_Click(object sender, EventArgs e)
    {
        pictureBox1.Image.RotateFlip(RotateFlipType.Rotate90FlipNone);
        Application.DoEvents();
    }

当我在此例程中有断点时,图片显示为旋转。如果没有断点,图片就不会旋转。

有什么想法吗?代码不能变得更简单。

2 个答案:

答案 0 :(得分:3)

试试这个:

 pictureBox1.Image.RotateFlip(RotateFlipType.Rotate90FlipNone);
 pictureBox1.Refresh();
 Application.DoEvents();

答案 1 :(得分:3)

您需要在Refresh()控件上调用Invalidate()PictureBox函数,以便在旋转后更新它。

来自MSDN:无效

  

使控件的整个表面无效并导致控件   重新绘制。

尝试:使用 Invalidate()

 private void button1_Click(object sender, EventArgs e)
        {
            pictureBox1.Image.RotateFlip(RotateFlipType.Rotate90FlipNone);
            pictureBox1.Invalidate();
            Application.DoEvents();
        }