test139 发表于 2022-2-16 14:33:15

版本【2.6.20062.255】C1FlexGrid滚轮报错,没找到相应事件,哪位大神分享下处理ba...

winform C1FlexGrid控件,鼠标滚轮向下滚动,报错信息如下:

应用程序不支持实时(JIT)调试。
有关详细信息,请参见此消息的结尾。

************** 异常文本 **************
System.OverflowException: 算术运算导致溢出。
   在 C1.Win.C1FlexGrid.Util.BaseControls.ScrollableControl.WndProc(Message& m)
   在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** 已加载的程序集 **************
mscorlib
    程序集版本: 2.0.0.0
    Win32 版本: 2.0.50727.9035 (WinRelRS5.050727-9000)
    基本代码: file:///C:/Windows/Microsoft.NET/Framework64/v2.0.50727/mscorlib.dll
----------------------------------------


test139 发表于 2022-2-16 14:33:16

Richard.Ma 发表于 2022-2-16 18:10
请上传一个demo上来重现问题,我来协助你验证原因

谢谢。原因大概找到了,下述的IntPtr 类型问题,winform是在平台anycpu编译的,当程序在64位系统上运行时,滚轮异常必现,当winform在X86上编译,在64位系统上运行没有异常。在想,这个回调函数参数应该是控件调用的,自己没法定义参数,控件引用的组件也是anycpu的,为什么出现类型不一致,导致溢出,目前没有发现好的解决办法

“IntPtr 类型被设计成整数,其大小适用于特定平台。即是说,此类型的实例在 32 位硬件和操作系统中将是 32 位,在 64 位硬件和操作系统上将是 64 位”

System.OverflowException: 算术运算导致溢出。
   在 C1.Win.C1FlexGrid.Util.BaseControls.ScrollableControl.WndProc(Message& m)
   在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Richard.Ma 发表于 2022-2-16 18:10:27

请上传一个demo上来重现问题,我来协助你验证原因

test139 发表于 2022-2-17 09:18:05

Richard.Ma 发表于 2022-2-16 18:10
请上传一个demo上来重现问题,我来协助你验证原因

demo如附件。.net 2.0下的老版本

test139 发表于 2022-2-17 09:20:15

Richard.Ma 发表于 2022-2-16 18:10
请上传一个demo上来重现问题,我来协助你验证原因

demo如附件。.net 2.0下的老版本

Richard.Ma 发表于 2022-2-17 10:50:50

你好,没有看到附件,麻烦检查一下
页: [1]
查看完整版本: 版本【2.6.20062.255】C1FlexGrid滚轮报错,没找到相应事件,哪位大神分享下处理ba...