首页 > 慧问 > 频道

跨线程给devexpress grid控件赋值的场合,出现红叉

发表于2019-05-10 回复:0 查看:3045  |  
需求:现有1个grid,每个cell中的值都由串口设备发送,cell接收值后自动跳到下一个cell。 做法: 串口设备类中定义 public delegate void SetTextCallBack(string data); 然后在主画面中通过委托把给cell设值的方法做参数。 scaleBase.GetTpData += new ScaleBase.SetTextCallBack(setScaleData); //给cell设值的方法 private void setScaleData(string data) { this.bandedGridView1.SetFocusedValue(data); } 问题: 在控制窗口边缘位置的cell接收值后自动跳到下一个cell的时候时出错。 (因为有多个cell,所以有横向滚动条。当cell不处于窗口边缘时没有问题。如果是窗口边缘的cell,如果移动滚动条使其不在边缘,也不会出错。) 控制代码如下: newCol = this.bandedGridView1.Columns.View.VisibleColumns[m]; this.bandedGridView1.FocusedColumn = newCol; 异常信息如下: System.NullReferenceException: 未将对象引用设置到对象的实例。 在 DevExpress.XtraGrid.Views.Grid.ViewInfo.GridViewInfo.UpdateCellAppearance(GridCellInfo cell, Boolean always) 在 DevExpress.XtraGrid.Views.Grid.Drawing.GridPainter.DrawRegularRowCell(GridViewDrawArgs e, GridCellInfo ci) 在 DevExpress.XtraGrid.Views.Grid.Drawing.GridPainter.DrawRegularRow(GridViewDrawArgs e, GridDataRowInfo ri) 在 DevExpress.XtraGrid.Views.Grid.Drawing.GridPainter.DrawRow(GridViewDrawArgs e, GridRowInfo ri) 在 DevExpress.XtraGrid.Views.Grid.Drawing.GridPainter.DrawRows(GridViewDrawArgs e) 在 DevExpress.XtraGrid.Views.Grid.Drawing.GridPainter.DrawContents(GridViewDrawArgs e) 在 DevExpress.XtraGrid.Views.Grid.Drawing.GridPainter.Draw(ViewDrawArgs ee) 在 DevExpress.XtraGrid.Views.Base.BaseView.Draw(GraphicsCache e) 在 DevExpress.XtraGrid.GridControl.OnPaint(PaintEventArgs e) 在 System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e, Int16 layer) 在 System.Windows.Forms.Control.WmPaint(Message& m) 在 System.Windows.Forms.Control.WndProc(Message& m) 在 DevExpress.XtraEditors.Container.EditorContainer.WndProc(Message& m) 在 DevExpress.XtraGrid.GridControl.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) 希望哪位大神帮忙看下,谢谢。
0个回答

打破零回复...

回复

登录 慧都网发表评论

扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP