private void dataGrid_CellEndEdit(object sender, DataGridViewCellEventArgs e) { int oldValue = 0; int newValue; string newValueString = ""; if (dataGrid.Rows.Count != 0 && e.RowIndex >= 0 && dataGrid.Columns[e.ColumnIndex].Name == "colValue" ) { DataGridViewRow row = dataGrid.Rows[e.RowIndex]; DataGridViewCell cellValue = row.Cells["colValue"]; newValueString = (cellValue.Value == null) ? "" : cellValue.Value.ToString(); string colType = row.Cells["colType"].Value.ToString(); if (colType == "objname") { m_app.RenameObj(m_page, m_obj, newValueString); cellValue.Value = m_obj.ObjName; } else if (row.Cells["colType"].Value.ToString() == "x") { oldValue = m_obj.ObjInfo.Panel.EndX - m_obj.ObjInfo.Panel.X + 1; newValue = Utility.GetInt(newValueString); if (newValue < 0 || newValue >= m_app.LcdWidth || newValue + oldValue > m_app.LcdWidth ) { MessageBox.Show("Error: Drawing off screen. Cancelled.".Translate()); cellValue.Value = m_savedValue; return; } m_obj.ObjInfo.Panel.X = (ushort)newValue; m_obj.ObjInfo.Panel.EndX = (ushort)(m_obj.ObjInfo.Panel.X + oldValue - 1); cellValue.Value = m_obj.ObjInfo.Panel.X.ToString(); ObjectPosXY(null, null); } else if (row.Cells["colType"].Value.ToString() == "y") { oldValue = (m_obj.ObjInfo.Panel.EndY - m_obj.ObjInfo.Panel.Y) + 1; newValue = Utility.GetInt(newValueString); if (newValue < 0 || newValue >= m_app.LcdHeight || newValue + oldValue > m_app.LcdHeight ) { MessageBox.Show("Error: Drawing off screen. Cancelled.".Translate()); cellValue.Value = m_savedValue; return; } m_obj.ObjInfo.Panel.Y = (ushort)newValue; m_obj.ObjInfo.Panel.EndY = (ushort)(m_obj.ObjInfo.Panel.Y + oldValue - 1); cellValue.Value = m_obj.ObjInfo.Panel.Y.ToString(); ObjectPosXY(null, null); } else if (row.Cells["colType"].Value.ToString() == "w") { newValue = Utility.GetInt(newValueString); if (newValue < 1 || m_obj.ObjInfo.Panel.X + newValue > m_app.LcdWidth) { MessageBox.Show("Error: Drawing off screen. Cancelled.".Translate()); cellValue.Value = m_savedValue; return; } if (m_obj.IsBinding == 1) { MessageBox.Show("Shape size has been bound, can not be changed manually".Translate()); cellValue.Value = m_savedValue; return; } m_obj.ObjInfo.Panel.EndX = (ushort)(m_obj.ObjInfo.Panel.X + newValue - 1); cellValue.Value = newValue.ToString(); ObjectPosXY(null, null); } else if (row.Cells["colType"].Value.ToString() == "h") { newValue = Utility.GetInt(newValueString); if (newValue < 1 || m_obj.ObjInfo.Panel.Y + newValue > m_app.LcdHeight) { MessageBox.Show("Error: Drawing off screen. Cancelled.".Translate()); cellValue.Value = m_savedValue; return; } if (m_obj.IsBinding == 1) { MessageBox.Show("Shape size has been bound, can not be changed manually".Translate()); cellValue.Value = m_savedValue; return; } m_obj.ObjInfo.Panel.EndY = (ushort)(m_obj.ObjInfo.Panel.Y + newValue - 1); cellValue.Value = newValue.ToString(); ObjectPosXY(null, null); } else { if (m_obj.SetAttrValue(row.Cells["colName"].Value.ToString(), newValueString)) { if (dataGrid.Rows[e.RowIndex].Cells["colIsBinding"].Value != null && dataGrid.Rows[e.RowIndex].Cells["colIsBinding"].Value.ToString() == "1" ) { m_obj.BindingPicXY(Utility.GetInt(newValueString)); ObjectPosXY(null, null); } } else { cellValue.Value = m_savedValue; } } ObjectAttach(null, null); } }