各位能不能聊一下,出现这种异常的常见原因。我的是一个timer控件获取当前活动控件和当前活动窗体。我有两个窗体,频繁切换两个窗体就出现这个异常。

解决方案 »

  1.   

    原因就是对为null的对象调用其实例方法或属性、字段。
    应该在此前加判断是否为null。
      

  2.   

    最好判断一下,如果不为null执行
      

  3.   

    在timer的tick事件里,获取当前活动窗体和控件,把它们分别显示在状态栏; toolStripStatusLabel3.Text = ActiveForm.Name;
     toolStripStatusLabel2.Text = ActiveControl.Name;----------------------------------------------------------------我切换第二个窗体再切回第一个,如此几次就出错啦。why?
      

  4.   

    如果用messagebox的show方法,tick事件触发的时候,也会出现这个错误。
      

  5.   

    ActiveForm或ActiveControl这两个引用为空吧,使用时先判断一下它们是否为NULL
      

  6.   

    怎么判断?为什么切换到别的窗口或者弹出对话框,引用就为null了?
      

  7.   

    ActiveForm或ActiveControl可能无法获取主程序以外的活动窗口,可以查一下msdn看看上面是怎么说的。我觉得应该你说的两个窗口应该是另外一个主窗口的子窗口,这样可能好获得一点,就像mdi窗口一样。