void dataGridView_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
try
{
ValueType[] parts = new ValueType[dataGridView.Rows.Count];
for (int i = 0; i < dataGridView.Rows.Count; i++)
{
DataGridViewRow row = dataGridView.Rows[i];
switch (row.Cells[2].Value.ToString())
{
case "Byte": parts[i] = byte.Parse(row.Cells[1].Value.ToString(), System.Globalization.NumberStyles.AllowHexSpecifier); break;
case "UInt16": parts[i] = ushort.Parse(row.Cells[1].Value.ToString(), System.Globalization.NumberStyles.AllowHexSpecifier); break;
case "UInt32": parts[i] = uint.Parse(row.Cells[1].Value.ToString(), System.Globalization.NumberStyles.AllowHexSpecifier); break;
case "UInt64": parts[i] = ulong.Parse(row.Cells[1].Value.ToString(), System.Globalization.NumberStyles.AllowHexSpecifier); break;
}
}
MetaDataRow newrow = new MetaDataRow(currentMember.MetaDataRow.Offset, parts);
currentMember.MetaDataRow = newrow;
currentMember.ClearCache();
currentMember.ApplyChanges();
propertyGrid.Refresh();
}
catch (Exception ex)
{
MessageBox.Show("An error occured. " + ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}