//--------------------------------------------------- public bool RemoveDonnee(CControlePrevisionOperation controle) { CResultAErreur result = CResultAErreur.True; if (controle.Operation != null) { result = controle.Operation.CanDelete(); if (!result) { CFormAlerte.Afficher(result.Erreur); return(false); } } int nNiveau = controle.Niveau; int nIndex = controle.Index; CControlePrevisionOperation ctrlSuivant = null; if (nIndex + 1 < m_listeControlsUtiles.Count) { ctrlSuivant = (CControlePrevisionOperation)m_listeControlsUtiles[nIndex + 1]; } while (ctrlSuivant != null && ctrlSuivant.Niveau > nNiveau) { if (!RemoveDonnee(ctrlSuivant)) { return(false); } if (nIndex + 1 < m_listeControlsUtiles.Count) { ctrlSuivant = (CControlePrevisionOperation)m_listeControlsUtiles[nIndex + 1]; } else { ctrlSuivant = null; } } if (controle.Operation != null) { result = controle.Operation.Delete(); if (!result) { return(false); } } m_listeControlsUtiles.Remove(controle); m_listeControlesReserve.Add(controle); nIndex = controle.Index; for (int nChange = nIndex; nChange < m_listeControlsUtiles.Count; nChange++) { ((CControlePrevisionOperation)m_listeControlsUtiles[nChange]).Index = nIndex; nIndex++; } controle.Operation = null; controle.Hide(); //s'il n'y a plus de contrôle, il faut en ajouter 1 !!! if (m_listeControlsUtiles.Count == 0 && m_gestionnaireModeEdition.ModeEdition) { CControlePrevisionOperation ctrl = GetNewControle(0); ctrl.InitControle(null, 0, 0, true); } RecalcSize(); return(true); }