我正在使用winforms。
我有一个处理其UserControl
。
当我点击标签时,我曾经称它为正常工作(仍然如此)。 现在增加了一个devexpress控件,它像以前一样处理它自己的控件。 我调用与标签相同的函数,但在事件结束后,我得到一个空指针执行,我创建我的Mainform(它没有放置在任何地方)。
我在这里缺少什么。我认为破坏自己的用户控件是有问题的,但是为什么单击标签时这样做,而不是当我点击其他用户控件时?任何人都可以给出解释或解决方案吗?谢谢!
private void DoDispose()
{
this.Dispose();
}
private void breadCrumbEdit1_Properties_NodeClick(object sender, BreadCrumbNodeClickEventArgs e)
{
DoDispose();
}
private void label1_MouseClick(object sender, MouseEventArgs e)
{
DoDispose();
}
答案 0 :(得分:1)
您在Dispose()
上呼叫this
,在这种情况下,它将是父表单。
假设您正在传递Control
个对象,请更改您的代码;
public void DoDispose(object control)
{
((Control)object).Dispose();
}
调用DoDispose(sender)
现在,您在作为参数传递的对象上调用Dispose()
,而不是父窗体。