1

内部に画像があるpictureBoxがあります。ボタンをクリックすると、画像が非表示になり、もう一度クリックして画像が表示されます。

pictureBox で、ペイント イベントを使用して、いくつかの線を描画しています。だから私がやっ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ピクセルのビットマップを作成し、画像を非表示にするときに画像ボックスに割り当ててから、画像を再度割り当てます。あなたの質問の2番目の部分が何を求めているのか少しわかりません。何らかの条件に基づいてペイントイベントで除外しない限り、ピクチャーボックスのペイントイベントの描画は残ります。ボックスに線を引きたい場合は、ボタンからオン/オフを切り替えます。2番目の例を参照してください。

すなわち

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;
        }
    }
}

2番目の例

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

picturebox1.BackgroundImage = null

于 2014-02-26T07:35:22.867 に答える