// This method fires when the user wishes to edit a value.
        public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
        {
            StringListOption option = (StringListOption)value;
            StringListForm   form   = new StringListForm();

            InitializeDialog(form);

            form.Editor = this;
            form.AddFiles(option.StringList);

            if (form.ShowDialog() == DialogResult.OK)
            {
                option.StringList = form.Strings;

                return(option);
            }

            return(option);
        }
        /*=== virtuals ===*/

        // Override this to initialize the dialog.
        protected virtual void InitializeDialog(StringListForm form)
        {
        }
        /*=== overrides ===*/

        // Override this to initialize the dialog.
        protected override void InitializeDialog(StringListForm form)
        {
            form.Text = "Additional Feature Directories";
        }
        /*=== overrides ===*/

        // Override this to initialize the dialog.
        protected override void InitializeDialog(StringListForm form)
        {
            form.Text = "Header Compile Directories";
        }
        /*=== overrides ===*/

        // Override this to initialize the dialog.
        protected override void InitializeDialog(StringListForm form)
        {
            form.Text = "Additional Dependencies";
        }
        /*=== overrides ===*/

        // Override this to initialize the dialog.
        protected override void InitializeDialog(StringListForm form)
        {
            form.Text = "Additional Header Files";
        }