我想仅在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;
}
你的回答非常感谢!
答案 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
方法。