如何隐藏/显示pictureBox的背景图片?

时间:2012-07-28 10:46:55

标签: c# image show-hide picturebox

我有一个带有图像的pictureBox。 我想,当我点击一个按钮时,图像应该隐藏,然后再次单击以显示图像。

在pictureBox中,使用绘制事件我正在绘制一些线条。 因此,如果我正在做pictureBox1.Refresh();,它将绘制线条。我希望如果我点击一个按钮,图像就不会显示开/关。

pictureBox1 = null;pictureBox1.Image.Dispose();不起作用,它显示我带有白色背景的大红色x。

3 个答案:

答案 0 :(得分:1)

隐藏它:

pictureBox.Visible = false;

要在点击事件中隐藏/显示它:

void SomeButton_Click(Object sender, EventArgs e)
{
    pictureBox.Visible = !pictureBox.Visible;
}

答案 1 :(得分:0)

要切换PictureBox中的图像,您可以创建1像素位图,并在想要隐藏图像时将其指定给图片框,然后再将图像重新分配。我有点不清楚问题的第二部分是什么问题,除非你根据某些条件在Paint事件中排除它,否则图片框中的Paint事件中的任何图形都将保留。如果你想在框中画一条线,在按钮上打开/关闭它,请参阅我的第二个例子。

public partial class Form1 : Form
{
    Bitmap nullBitmap = new Bitmap(1, 1); // create a 1 pixel bitmap
    Bitmap myImage = new Bitmap("Load your Image Here"); // Load your image
    bool showImage;  // boolean variable so we know what image is assigned
    public Form1()
    {
        InitializeComponent();
        pictureBox1.Image = myImage;
        showImage = true;
    }

    private void button1_Click(object sender, EventArgs e)
    {
        if (showImage)
        {
            pictureBox1.Image = nullBitmap;
            showImage = false; 
        }
        else
        {
            pictureBox1.Image = myImage;
            showImage = true;
        }
    }
}

第二个例子

public partial class Form1 : Form
{
    bool showLines;
    public Form1()
    {
        InitializeComponent();
        showLines = true;
    }

    private void button1_Click(object sender, EventArgs e)
    {
        if (showLines)
        {
            showLines = false;
            pictureBox1.Invalidate();
        }
        else
        {
            showLines = true;
            pictureBox1.Invalidate();
        }
    }

    private void pictureBox1_Paint(object sender, PaintEventArgs e)
    {
        if(showLines)
            e.Graphics.DrawLine(Pens.Purple, 0, 0, 100, 100);
    }
}

答案 2 :(得分:0)

picturebox1.BackgroundImage = null