我找了下源码,看到有一处类型转换会报这种异常
在STNodeEditor.cs类的第634行
Point pt = new Point(((int)m.LParam) >> 16, (ushort)m.LParam);
这里的强制转换会报算术运算溢出
改成下面这样写就兼容了
int x = (short)((m.LParam.ToInt64() >> 16) & 0xFFFF);
int y = (short)(m.LParam.ToInt64() & 0xFFFF);
Point pt = new Point(x, y);