仅当图片框上有图片时才启用该按钮

时间:2014-04-10 23:19:13

标签: c# winforms image picturebox

我想仅在Windows窗体上的图片框上有图片时启用该按钮。否则,按钮将保持为假。

我已尝试过以下代码,但当图片框中包含图片时,该按钮根本无法启用(默认情况下启用按钮为真)

if (pictureBox1 == null || pictureBox1.Image == null)
            {
                this.button2.Enabled = false;
            }

            else if (pictureBox1 != null || pictureBox1.Image != null)
            {
                this.button2.Enabled = true;
            }

if (pictureBox1 == null || pictureBox1.BackgroundImage == null)
            {
                this.button2.Enabled = false;
            }

            else
            {
                this.button2.Enabled = true;
            }

你的回答非常感谢!

1 个答案:

答案 0 :(得分:2)

如果该代码在表单的Load事件上执行,且PictureBox此时为空,则Button将被禁用。如果您稍后加载Image,则必须再次执行代码。加载Image时没有引发任何事件,因此您只需为此目的编写一个方法:

private void SetPictureBoxImage(Image img)
{
    this.pictureBox1.Image = img;
    this.SetButtonEnabledState();
}

private void SetButtonEnabledState()
{
    this.button2.Enabled = (this.pictureBox1.Image != null);
}

每当您想要设置或清除Image时,请调用第一种方法。您也可以在表单的Load事件中调用第二种方法,以防您在设计器中设置Image,这会绕过SetPictureBoxImage方法。