for (i = 0; i < len - 2; i++)
{
if (recvbuf[i + 1] == 0x03 && recvbuf[i + 2] == 0x18)
{
if (data_test_crc(recvbuf, strlenlt, recvbuf) > 0)
{
DataRow dr = dt.NewRow();
dr[0] = recvbuf[i];
//dr[1] = (recvbuf[i + 3] << 8 | recvbuf[i + 4]);
dr[1] = DateTime.Now.ToString("");
dr[2] = (recvbuf[i + 13] << 8 | recvbuf[i + 14]);
dr[3] = (recvbuf[i + 15] << 8 | recvbuf[i + 16]);
dr[4] = (recvbuf[i + 17] << 8 | recvbuf[i + 18]);
dr[5] = (recvbuf[i + 11] << 8 | recvbuf[i + 12]);
dr[6] = (recvbuf[i + 9] << 8 | recvbuf[i + 10]);
dr[7] = (recvbuf[i + 3] << 8 | recvbuf[i + 4]);
dr[8] = (recvbuf[i + 17] << 8 | recvbuf[i + 18]);
dr[9] = (recvbuf[i + 11] << 8 | recvbuf[i + 12]);
dr[10] = (recvbuf[i + 19] << 8 | recvbuf[i + 20]);
dr[11] = (recvbuf[i + 23] << 8 | recvbuf[i + 24]);
dr[12] = (recvbuf[i + 23] << 8 | recvbuf[i + 24]);
dr[13] = (recvbuf[i + 25] << 8 | recvbuf[i + 26]);
lock (datatableLock)
dt.Rows.Add(dr);
skinDataGridView1.Invalidate();
}
}
}
m_bRecvStop = true;
delegate void _DelegateDataGridView(DataGridView _DataGridView, DataTable _DataTable);//定义委托
void _SetDelegateDataGridView(DataGridView _DataGridView, DataTable _DataTable)
{
if (_DataGridView.InvokeRequired)
{
if (_DataGridView.Columns.Count == 0)
{
_DataGridView.Columns.Add("IsWorking", "任务");
}
_DataGridView.Invoke(new _DelegateDataGridView(_SetDelegateDataGridView), new object[] { _DataGridView, _DataTable });
}
else
{
for (int _Rows1 = 0; _Rows1 < _DataTable.Rows.Count; _Rows1++)
{
string _IsWorking = _DataTable.Rows[_Rows1]["IsWorking"].ToString();
_DataGridView.Rows.Add(_IsWorking);
}
}
}
skinDataGridView1.Invalidate(); //不知道你加上这句是要干什么。
修改数据源后需要重新绑定。
建议你 把代码逐行 逐块删除,然后编译。看看去掉哪几句就不报错。