我有一个里面有图像的图片框。我想要,当我单击一个按钮时,图像应该隐藏并再次单击以显示图像。
在图片框中,使用绘画事件我正在绘制一些线条。所以如果我这样做pictureBox1.Refresh();
会画线。我希望如果我单击一个按钮,图像将不会显示/关闭。
pictureBox1 = null;
或者pictureBox1.Image.Dispose();
不起作用,它向我展示了带有白色背景的大红色 x。
我有一个里面有图像的图片框。我想要,当我单击一个按钮时,图像应该隐藏并再次单击以显示图像。
在图片框中,使用绘画事件我正在绘制一些线条。所以如果我这样做pictureBox1.Refresh();
会画线。我希望如果我单击一个按钮,图像将不会显示/关闭。
pictureBox1 = null;
或者pictureBox1.Image.Dispose();
不起作用,它向我展示了带有白色背景的大红色 x。
隐藏它:
pictureBox.Visible = false;
在点击事件中隐藏/显示它:
void SomeButton_Click(Object sender, EventArgs e)
{
pictureBox.Visible = !pictureBox.Visible;
}
要在您的图像中切换图像,您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);
}
}
图片框1.BackgroundImage = null