gpt4 book ai didi

c# - MonthCalendar 中的奇怪错误突然开始发生

转载 作者:可可西里 更新时间:2023-11-01 08:43:29 27 4
gpt4 key购买 nike

这份崩溃报告是在 2 天前从我们的许多用户那里收到的。我们的代码没有更新,这个错误发生在多个版本上。其中一些版本已有多年历史,因此更新不会破坏某些东西。这是一个使用 Infragistics 2014 Vol 2 的 .NET 4.0 应用程序。Infragistics 支持似乎认为这是 Windows 窗体的 MonthCalendar 中的一个错误,但我无法在网上找到任何东西。从带有故障转储的屏幕截图来看,当他们收到此错误时,所有用户似乎都在单击以下拉日历。我无法复制它。

System.InvalidOperationException: Operation is not valid due to the current state of the object.
at System.Windows.Forms.MonthCalendar.WndProc(Message& m)
at Infragistics.Win.MonthDropDownWithUIPermissions.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

有人知道是什么原因造成的吗?这很关键,我什至无处可去。

最佳答案

感谢 Mangist 的回复。它帮助我找到问题的原因。我在使用 MonthCalendar 控件时遇到问题,问题的根源是控件用于显示粗体日期的内部方法。我用日期数组填充 BoldedDates 属性。这导致控件自动调用 UpdateBoldedDates() 函数并发生崩溃。我所做的只是通过一个一个地添加粗体日期来替换代码(没有性能损失)。执行此操作时,UpdateBoldedDates() 函数必须 手动调用(这救了我的命:))。因此,在用粗体日期填充 MonthCalendar 之后,我使用了“解决方法”并在工作线程中调用了 UpdateBoldedDates() 函数。这是我的代码(在 Visual Basic.NET 中):

Private Sub UpdateBoldedDatesWT()
mcCalendar.UpdateBoldedDates()
End Sub

Public Sub LoadBoldedDates()

Dim bDates As List(Of Date)

Try
Dim dExt As New DatesHelper(sqlConn)
bDates = dExt.GetAppointmentDates(mcCalendar.SelectionStart)
mcCalendar.RemoveAllBoldedDates()

For Each d As Date In bDates
mcCalendar.AddBoldedDate(d)
Next

mcCalendar.BeginInvoke(New MethodInvoker(AddressOf UpdateBoldedDatesWT))
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "Error loading bolded dates")
End Try

End Sub

关于c# - MonthCalendar 中的奇怪错误突然开始发生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30262731/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com