1

我有一个里面有图像的图片框。我想要,当我单击一个按钮时,图像应该隐藏并再次单击以显示图像。

在图片框中,使用绘画事件我正在绘制一些线条。所以如果我这样做pictureBox1.Refresh();会画线。我希望如果我单击一个按钮,图像将不会显示/关闭。

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

4

3 回答 3

2

隐藏它:

pictureBox.Visible = false;

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

void SomeButton_Click(Object sender, EventArgs e)
{
    pictureBox.Visible = !pictureBox.Visible;
}
于 2012-07-28T10:48:23.773 回答
0

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

IE

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);
    }
}
于 2012-07-29T00:48:03.933 回答
0

图片框1.BackgroundImage = null

于 2014-02-26T07:35:22.867 回答