private void buttonEdit_Click(object sender, EventArgs e) { errorProvider1.Clear(); foreach (String head in pack.header) { int index = pack.GetPackIndexByName(head); String value = getControlValue(panelEditZone.Controls[head] as IAutoControl); String matchstr = ""; String hintstr = ""; if (pack.datatype[index] == "int") { matchstr = @"^(-)?\d+$"; hintstr = "只能是整数"; } else if (pack.datatype[index] == "char") { matchstr = "^.{0," + pack.datasize[index] + "}$"; hintstr = String.Format("只能是字符串,且最大长度为{0}", pack.datasize[index]); } if (!Regex.IsMatch(value, matchstr)) { errorProvider1.SetError(panelEditZone.Controls[head], hintstr); return; } if (value.IndexOf('\n') >= 0) { errorProvider1.SetError(panelEditZone.Controls[head], "数据中有回车"); return; } } bool needupdatename = false; foreach (String head in pack.header) { int index = pack.GetPackIndexByName(head); String value = getControlValue(panelEditZone.Controls[head] as IAutoControl); if (value != pack.data[selectId][index]) { pack.EditPackData(selectId, head, value); if (index == nameIndex) //名称键更新需要刷新列表 { needupdatename = true; } } } if (needupdatename) { refreshList(selectId); } }
private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e) { if (!isLoad) { return; } string head = pack.header[e.ColumnIndex]; int index = int.Parse(dataGridView1.Rows[e.RowIndex].HeaderCell.Value.ToString()); string value = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString(); int off = pack.GetPackIndexByName(head); if (value != pack.data[index][off]) { pack.EditPackData(index, head, value); } }