2017-02-14 80 views
0

我正在使用C#WinForms。NullReferenceException在处理Tab中的UserControl时

我正在使用称为AGauge的usercontrol。 http://www.codearteng.com/2012/08/agauge-winforms-gauge-control.html 我将控件添加到设计视图中的其中一个选项卡页面。

如果我关闭窗口,而无需打开一个包含控制标签页,然后我得到一个NullReferenceException(NullReferenceException异常发生在AGauge.dll - 对象引用不设置到对象的实例),如果我

打开标签页,然后关闭窗口,然后一切正常。

执行base.Dispose时(处置)

因为我没有任何看法入AGauge.dll代码中的例外发生在的Dispose()函数,我不知该怎么办。我想我可以在打开标签页时在运行时创建控件,但这并不理想。

回答

0

我通过在选项卡控件的Selected()函数中创建用户控件来解决了问题。

private void tb_Panel_Selected(object sender, TabControlEventArgs e) 
{ 
    if (myUserControl == null) 
    { 
     this.myUserControl = new System.Windows.Forms.AGauge(); 
     ... 
     ... 
     this.Panel.Controls.Add(this.myUserControl) 
    } 
}