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

本文关键字:启用 按钮 有图片 | 更新日期: 2023-09-27 17:57:46

只有当windows窗体上的picturebox上有图片时,我才想启用该按钮。否则,该按钮将保持为false。

我已经尝试过下面的代码,但当图片框包含图片时,按钮根本不会启用(默认情况下启用的按钮为true)

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

非常感谢您的回答!

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

如果在表单的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时,请调用第一个方法。如果在设计器中设置Image,则也可以在表单的Load事件上调用第二个方法,这将绕过SetPictureBoxImage方法。