我有一个带有图像的pictureBox。 我想,当我点击一个按钮时,图像应该隐藏,然后再次单击以显示图像。
在pictureBox中,使用绘制事件我正在绘制一些线条。
因此,如果我正在做pictureBox1.Refresh();
,它将绘制线条。我希望如果我点击一个按钮,图像就不会显示开/关。
pictureBox1 = null;
或pictureBox1.Image.Dispose();
不起作用,它显示我带有白色背景的大红色x。
答案 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