private void sensorParamsGrid_CellEndEdit(object sender, DataGridViewCellEventArgs e) { string key = sensorParamsGrid[e.ColumnIndex - 1, e.RowIndex].Value.ToString(); string value = sensorParamsGrid[e.ColumnIndex, e.RowIndex].Value.ToString(); double val; FormMain.ParamDesc paramDesc = sensorParamTable[key]; if (paramDesc.isStrItem()) { if (paramDesc.getStrList().Contains(value) == false) { MessageBox.Show(this, "输入值不合法: " + paramDesc.getFormat()); } } else { if (double.TryParse(value, out val) == false) { MessageBox.Show(this, "输入值不合法"); sensorParamsGrid[e.ColumnIndex, e.RowIndex].Value = paramDesc.getValue(); return; } if (val < paramDesc.getMin() || val > paramDesc.getMax()) { MessageBox.Show(this, String.Format("输入值超出范围 [{0},{1}]", paramDesc.getMin(), paramDesc.getMax())); sensorParamsGrid[e.ColumnIndex, e.RowIndex].Value = paramDesc.getValue(); return; } } }