C#引发的异常:“System.InvalidOperationException”(位于 System.Windows.Forms.dll 中)

在C#Winform程序开发运行时,发现输出窗口在不断报错“引发的异常:System.InvalidOperationException(位于 System.Windows.Forms.dll 中)”
用单步调试的方法,发现在创建完其中一个窗体后,就开始报以上错误。问题代码在这:

 /// <summary>
        /// 更新日期
        /// </summary>
        private void UpdateDateTime()
        {
           //获取当前年月日时分秒周数信息
            string dateTimeWeek =Mathematics.GetCurrentYearMonthDayHourMinuteSecondWeek();
            try
            {
                   Invoke((EventHandler)delegate { tsslbData.Text = dateTimeWeek; });
            }
            catch { }
        }

以上方法是在窗体构造函数里创建了一个Timer,定时刷新。此时窗体并没有Show,即Load出来,所以使用Invoke就引发了异常System.InvalidOperationException”(位于 System.Windows.Forms.dll 中)。
修改方法:只需要在使用Invoke使用前,判断下该窗体是否被创建即可,如下所示。

/// <summary>
        /// 更新日期
        /// </summary>
        private void UpdateDateTime()
        {
            //获取当前年月日时分秒周数信息
            string dateTimeWeek =Mathematics.GetCurrentYearMonthDayHourMinuteSecondWeek();
            try
            {
                if(this.IsHandleCreated)
                   Invoke((EventHandler)delegate { tsslbData.Text = dateTimeWeek; });
            }
            catch { }
        }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容