/// /////////////////////////////////////////////////////////////////
        public static CDefinitionProprieteDynamique SelectDefinitionChamp
        (
            Rectangle position,
            CObjetPourSousProprietes objetPourSousProprietes,
            IFournisseurProprietesDynamiques fournisseur,
            ref bool bCancel,
            BeforeIntegrerChampEventHandler fonctionFiltre,
            CDefinitionProprieteDynamique definitionRacineDeChamps
        )
        {
            CFormSelectChampPopupBase form = new CFormSelectChampPopupBase();

            form.m_definitionRacineDeChamp = definitionRacineDeChamps;
            if (fonctionFiltre != null)
            {
                form.BeforeIntegreChamp += fonctionFiltre;
            }
            if (objetPourSousProprietes == null)
            {
                return(null);
            }
            form.Init(objetPourSousProprietes, fournisseur, definitionRacineDeChamps);
            form.Left   = position.Left;
            form.Top    = position.Top;
            form.Width  = position.Width;
            form.Height = position.Height;
            DialogResult dResult = form.ShowDialog();

            bCancel = true;
            CDefinitionProprieteDynamique def = null;

            if (dResult == DialogResult.OK)
            {
                def     = form.m_definitionSelectionnee;
                bCancel = false;
            }
            if (dResult == DialogResult.No)
            {
                bCancel = false;
            }
            form.Dispose();
            return(def);
        }
        /// /////////////////////////////////////////////////////////////////
        //Implémentation de ISelectionneurProprieteDynamique
        public CDefinitionProprieteDynamique SelectPropriete
        (
            CDefinitionProprieteDynamique propSelectionnee,
            CDefinitionProprieteDynamique definitionRacineDeChamps
        )
        {
            CFormSelectChampPopupBase form = new CFormSelectChampPopupBase();

            form.Init(m_objetPourSousProprietes, m_fournisseur, definitionRacineDeChamps);
            form.StartPosition = FormStartPosition.CenterParent;
            DialogResult dResult = form.ShowDialog();

            if (dResult == DialogResult.OK)
            {
                propSelectionnee = form.m_definitionSelectionnee;
            }
            if (dResult == DialogResult.No)
            {
                propSelectionnee = null;
            }
            return(propSelectionnee);
        }
        public CDefinitionProprieteDynamique EditePropriete(CDefinitionProprieteDynamique propriete,
                                                            CObjetPourSousProprietes objetPourSousProprietes,
                                                            IFournisseurProprietesDynamiques fournisseur,
                                                            bool bAffectable,
                                                            Type[] typesAutorises)
        {
            m_typesAutorises = typesAutorises;
            int       nPosLargeur = (((int)(System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Width / 2)) - 100);
            int       nPosHauteur = (((int)(System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height / 2)) - 150);
            Rectangle rectPos     = new Rectangle(nPosLargeur, nPosHauteur, 200, 300);
            bool      bCancel     = false;


            propriete = CFormSelectChampPopupBase.SelectDefinitionChamp(
                rectPos,
                objetPourSousProprietes,
                fournisseur,
                ref bCancel,
                new BeforeIntegrerChampEventHandler(AccepteChamp),
                propriete);

            return(propriete);
        }