这是一个真正的新手问题。我有一个简单的应用程序,可以选择图片并在PictureBox中显示该图片。
我决定弄乱“不透明度”属性,因此添加了一个计时器并创建了这种炫酷效果,其中“主窗体”的“不透明度”每400毫秒增加20%。
现在的问题是,当我单击调用“选择文件”对话框的按钮时,出现NullReferenceException错误。
private void tmrClock_Tick(object sender, EventArgs e)
{
if (ViewerForm.ActiveForm.Opacity != 1)
{
ActiveForm.Opacity = ActiveForm.Opacity + .20;
}
}
错误消息指向if语句。
我究竟做错了什么?
谢谢
最佳答案
ActiveForm
属性返回当前焦点的Form
对象。
当您打开文件对话框时,没有焦点的窗体不是托管的Form
对象,因此ActiveForm
返回null
。
假设您的计时器在表单中,则只需编写this.Opacity
。 this
关键字引用计时器所在的Form
对象。
顺便说一句,您应该在动画结束时停止计时器(通过调用tmrClock.Stop()
)
关于c# - 调用“选择文件”对话框时出现NullReferenceException错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2404679/