美文网首页
C#引发的异常:“System.InvalidOperation

C#引发的异常:“System.InvalidOperation

作者: 堆石成山 | 来源:发表于2024-06-12 14:52 被阅读0次

    在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 { }
            }
    

    相关文章

      网友评论

          本文标题:C#引发的异常:“System.InvalidOperation

          本文链接:https://www.haomeiwen.com/subject/acfnqjtx.html