以下BUG的重现请务必不要在正式项目下尝试,否则你会很痛苦的
BUG的出现,重复操作了5次,都出现这种情况:
1.创建一个新表,创建2个数据列(暂且命名为A,B),默认都是字符型的,先不要录入任何数据
2.新建一个表达式列C,为双精度数字型,表达式为“A*B”
3.在A列输入一个数字,在B列输入一个数字,(都是在同一行操作)焦点离开后,出现以下提示
此主题相关图片如下:1.png
4.好吧,既然说string之间不能相乘,那就改列类型,先把A列改为整数型,改完后又出现了上图的错误提示
5.关闭错误提示窗口,不出以外的话就会出现,以下错误提示:
此主题相关图片如下:2.png
6.然后点击确定,神奇的一刻来了,如下:
此主题相关图片如下:3.png
.NET抛出来的提示是:
System.NullReferenceException: 未将对象引用设置到对象的实例。
在 Foxtable.O__oO0__.o 0 0(Object A_0, OwnerDrawCellEventArgs A_1, Boolean A_2, Boolean A_3)
在 Foxtable.O__oO0__.o____o__(Object A_0, OwnerDrawCellEventArgs A_1)
在 C1.Win.C1FlexGrid.C1FlexGridBase.OnOwnerDrawCell(OwnerDrawCellEventArgs e)
在 C1.Win.C1FlexGrid.C1FlexGridBase.?(OwnerDrawCellEventArgs e)
在 C1.Win.C1FlexGrid.C1FlexGridBase.?(Graphics g, Int32 row, Int32 col, Style s, Rectangle rc, String str, Image img)
在 C1.Win.C1FlexGrid.C1FlexGridBase.DrawCell(Graphics g, Int32 row, Int32 col, Style s, Rectangle rc, String str, Image img, CheckEnum chk)
在 C1.Win.C1FlexGrid.C1FlexGridBase.DrawCell(PaintEventArgs e, Int32 row, Int32 col)
在 C1.Win.C1FlexGrid.C1FlexGrid.DrawCell(PaintEventArgs e, Int32 row, Int32 col)
在 C1.Win.C1FlexGrid.C1FlexGrid.DrawRow(PaintEventArgs e, Int32 row)
在 C1.Win.C1FlexGrid.C1FlexGridBase.?(PaintEventArgs e)
在 C1.Win.C1FlexGrid.C1FlexGridBase.OnPaint(PaintEventArgs e)
在 System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e, Int16 layer, Boolean disposeEventArgs)
在 System.Windows.Forms.Control.WmPaint(Message& m)
在 System.Windows.Forms.Control.WndProc(Message& m)
在 C1.Win.C1FlexGrid.Util.BaseControls.ScrollableControl.WndProc(Message& m)
在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)