Как удалить FontEditor Titlebar

Для вызова ColorEditor необходимо реализовать IWindowsFormsEditorService и IServiceProvider. Цветной диалог имеет большую гибкость для интеграции в DropDownForm. Но в FontEditor Window уже есть встроенные CloseButton и Titlebar. Почему MS реализует такие разные вещи внутри диалогов? Как избавиться от CloseButton и Titlebar? Должен ли Caling out FontEditor использовать IWindowsFormsEditorService и IServiceProvider?

1 ответ

  1. Почему MS реализует такие разные вещи внутри диалогов?

Я еще не проверил отраженный код. Мне это неинтересно. Я просто люблю жаловаться.

  1. Как избавиться от CloseButton и Titlebar?

FontEditor - это просто всплывающее окно, в данный момент я не могу это сделать.

  1. Должен ли Caling out FontEditor использовать IWindowsFormsEditorService и IServiceProvider?

Я пробовал, кажется, мы должны использовать оба, хотя IWindowsFormsEditorService на самом деле не вызывается

.

    private void btnFont_Click(object sender, EventArgs e)
    {
        Point location = base.PointToScreen(new Point(btnFont.Bounds.Location.X, btnFont.Bounds.Location.Y + btnFont.Bounds.Height));
        DropDownManager myFontDialog = new DropDownManager(btnFont, new Rectangle(location, new Size(0, 0)), false, false, "Please choose...");                     
        object objectValue = new FontEditor().EditValue(myFontDialog, previousChoosenFont);
        if (objectValue != null)
        {
            previousChoosenFont = (Font)objectValue;
        }
        btnFont.Font = previousChoosenFont;
    }

   internal class DropDownManager : IWindowsFormsEditorService, IServiceProvider, IDisposable
    {
       ///......
       void IWindowsFormsEditorService.CloseDropDown()
        {
            throw new NotSupportedException();
        }

        void IWindowsFormsEditorService.DropDownControl(Control dropDownControl)
        {            
            throw new NotSupportedException();
        }

        DialogResult IWindowsFormsEditorService.ShowDialog(Form dialog)
        {
            throw new NotSupportedException();
        }

        object IServiceProvider.GetService(Type serviceType)
        {
            object result = null;
            if (serviceType.Equals(typeof(IWindowsFormsEditorService)))
            {
                result = this;
            }
            return result;
        }
       ///.....
}
Другие вопросы по тегам