public virtual void StartDelete()
        {
            if (m_fg.Rows.Count == m_fg.Rows.Fixed)
            {
                return ;
            }
            //Ket thuc trang thai edit cua grid
            if (!m_fg.FinishEditing())
            {
                return;
            }
            //confirm user
            if (!BaseMessages.MsgBox_Confirm(eConfirmMsg.Sure_to_delete.ToString()))
            {
                return;
            }

            if (m_e_mode == e_CC1InplaceEdittingMode.none)
            {
                CC1InplaceEdittingEventArgs v_obj_even_arg = new CC1InplaceEdittingEventArgs(true);
                if (BeforeDeleteEvent != null)
                    BeforeDeleteEvent(this, v_obj_even_arg);
                if (v_obj_even_arg.continue_editting)
                {
                    m_e_mode = e_CC1InplaceEdittingMode.delete_mode;
                    m_b_commit_successful = false;
                    m_fg.BeforeRowColChange -= catch_m_fg_before_row_col_change;
                    CommitEdit();
                    m_fg.BeforeRowColChange += catch_m_fg_before_row_col_change;
                }
                else
                {
                    CancelEdit();
                }
            }
            else
            {
                if (m_e_mode == e_CC1InplaceEdittingMode.insert_mode)
                {
                    this.CancelEdit();
                }
                else
                {
                    if (m_e_mode == e_CC1InplaceEdittingMode.update_mode)
                    {
                        this.CancelEdit();
                        this.StartDelete();
                    }
                }
            }
        }
 public virtual void StartUpdate()
 {
     Debug.Assert((m_e_mode == e_CC1InplaceEdittingMode.none)
         || (m_e_mode == e_CC1InplaceEdittingMode.update_mode)
         || (m_e_mode == e_CC1InplaceEdittingMode.insert_mode),
         "FlexGrid co mode delete khi goi startUpdate");
     if (m_e_mode == e_CC1InplaceEdittingMode.none)
     {
         CC1InplaceEdittingEventArgs v_obj_even_arg = new CC1InplaceEdittingEventArgs(true);
         if (BeforeUpdateEvent != null)
             BeforeUpdateEvent(this, v_obj_even_arg);
         if (v_obj_even_arg.continue_editting)
         {
             m_e_mode = e_CC1InplaceEdittingMode.update_mode;
             m_b_commit_successful = false;
         }
         else
         {
             CancelEdit();
         }
     }
 }
 private void m_obj_edit_controller_BeforeUpdate(object sender, CC1InplaceEdittingEventArgs e)
 {
     try
     {
         int v_i_grid_row = m_fg.Row;
         m_us_cur.ClearAllFields();
         grid_2_us_object(m_us_cur, v_i_grid_row);
         m_us_cur.BeginTransaction();
         if (m_us_cur.isUpdatable())
         {
             e.continue_editting = true;
         }
     }
     catch (Exception v_e)
     {
         m_us_cur.Rollback();
         e.continue_editting = false;
         CDBExceptionHandler v_objErrHandler = new CDBExceptionHandler(v_e, new CDBClientDBExceptionInterpret());
         v_objErrHandler.showErrorMessage();
     }
 }
 private void m_obj_edit_controller_BeforeInsert(object sender, CC1InplaceEdittingEventArgs e)
 {
     try
     {
         m_us_cur.BeginTransaction();
         e.continue_editting = true;
     }
     catch (Exception v_e)
     {
         e.continue_editting = false;
         CDBExceptionHandler v_objErrHandler = new CDBExceptionHandler(v_e, new CDBClientDBExceptionInterpret());
         v_objErrHandler.showErrorMessage();
     }
 }
 public virtual void StartUpdate()
 {
     Debug.Assert((m_obj_edit_controller.editting_mode == e_CC1InplaceEdittingMode.none)
         || (m_obj_edit_controller.editting_mode == e_CC1InplaceEdittingMode.update_mode)
         || (m_obj_edit_controller.editting_mode == e_CC1InplaceEdittingMode.insert_mode),
         "FlexGrid co mode delete khi goi startUpdate");
     if (m_obj_edit_controller.editting_mode == e_CC1InplaceEdittingMode.none)
     {
         m_us_cur.ClearAllFields();
         CC1InplaceEdittingEventArgs v_obj_even_arg = new CC1InplaceEdittingEventArgs(true);
         if (BeforeUpdateEvent != null)
             BeforeUpdateEvent(this, v_obj_even_arg);
         if (v_obj_even_arg.continue_editting)
         {
             m_obj_edit_controller.StartUpdate();
         }
         else
         {
             CancelEdit();
         }
     }
 }
 public virtual void StartInsert()
 {
     Debug.Assert((m_obj_edit_controller.editting_mode == e_CC1InplaceEdittingMode.none)
         || (m_obj_edit_controller.editting_mode == e_CC1InplaceEdittingMode.insert_mode),
         "FlexGrid co mode update hoac delete khi goi startInsert");
     if (m_obj_edit_controller.editting_mode == e_CC1InplaceEdittingMode.none)
     {
         m_us_cur.ClearAllFields();
         CC1InplaceEdittingEventArgs v_obj_even_arg = new CC1InplaceEdittingEventArgs(true);
         if (BeforeInsertEvent != null)
             BeforeInsertEvent(this, v_obj_even_arg);
         if (v_obj_even_arg.continue_editting)
         {
             //Them hang vao grid
             //If (m_fg.Rows.Count = m_fg.Rows.Fixed) Then
             //    m_fg.Rows.Add()
             //    m_fg.Focus()
             //    m_fg.Row = m_fg.Rows.Count - 1
             //    m_fg.Col = m_fg.Cols.Fixed
             //Else
             //    Dim v_i_new_grid_row As Integer = m_fg.Row + 1
             //    m_fg.Rows.Insert(v_i_new_grid_row)
             //    m_fg.Focus()
             //    m_fg.Row = v_i_new_grid_row
             //    m_fg.Col = m_fg.Cols.Fixed
             //    m_fg.ShowCell(v_i_new_grid_row, m_fg.Col)
             //End If
             int v_i_new_grid_row = get_new_row_position();
             m_fg.Rows.Insert(v_i_new_grid_row);
             m_fg.ShowCell(v_i_new_grid_row, m_fg.Col);
             m_fg.Focus();
             m_fg.Row = v_i_new_grid_row;
             m_fg.Col = m_fg.Cols.Fixed;
             m_obj_edit_controller.StartInsert();
         }
         else
         {
             CancelEdit();
         }
     }
 }
 public virtual void StartDelete()
 {
     Debug.Assert((m_obj_edit_controller.editting_mode == e_CC1InplaceEdittingMode.none)
         || (m_obj_edit_controller.editting_mode == e_CC1InplaceEdittingMode.delete_mode),
         "FlexGrid co mode insert hoac update khi goi startDelete");
     if (m_obj_edit_controller.editting_mode == e_CC1InplaceEdittingMode.none)
     {
         m_us_cur.ClearAllFields();
         CC1InplaceEdittingEventArgs v_obj_even_arg = new CC1InplaceEdittingEventArgs(true);
         if (BeforeDeleteEvent != null)
             BeforeDeleteEvent(this, v_obj_even_arg);
         if (v_obj_even_arg.continue_editting)
         {
             m_obj_edit_controller.StartDelete();
             //RemoveHandler m_fg.BeforeRowColChange, AddressOf catch_m_fg_before_row_col_change
             CommitEdit();
             //AddHandler m_fg.BeforeRowColChange, AddressOf catch_m_fg_before_row_col_change
         }
         else
         {
             CancelEdit();
         }
     }
 }