设置ToolStripProgressBar';时出现NullReferenceException;s值
本文关键字:NullReferenceException ToolStripProgressBar 设置 | 更新日期: 2023-09-27 18:26:44
使用ToolStripProgressBar
时遇到以下问题(但使用ProgressBar
时不会出现)。
我有一个默认的Form
和一个StatusStrip
,在StatusStrip
上有一个名为toolStripProgressBar1
的ToolStripProgressBar
。我有一个FormClosing
事件处理程序。当我关闭表单时,以下代码在toolStripProgressBar1.Value = i;
行抛出一个NullReferenceException
:
public partial class Form1 : Form
{
Progress<int> testProgress;
public Form1()
{
InitializeComponent();
testProgress = new Progress<int>(i =>
{
toolStripProgressBar1.Value = i;
});
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
((IProgress<int>)testProgress).Report(5);
}
}
根据调试器的说法,在发生异常时,toolStripProgressBar1
不是null
,但由于我无法想象的原因,它的许多字段和属性都是null
。有人能告诉我为什么会有这个例外吗?
设置值时,tooltrip进度条的包装进度条控件(ToolStripProgressBar.ProgressBar
属性)已被释放。这种情况不仅发生在处理FormClosing
时调用操作时,而且发生在重写OnFormClosing
时。