示例#1
0
        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);
            }
        }