Как удалить FontEditor Titlebar
Для вызова ColorEditor необходимо реализовать IWindowsFormsEditorService и IServiceProvider. Цветной диалог имеет большую гибкость для интеграции в DropDownForm. Но в FontEditor Window уже есть встроенные CloseButton и Titlebar. Почему MS реализует такие разные вещи внутри диалогов? Как избавиться от CloseButton и Titlebar? Должен ли Caling out FontEditor использовать IWindowsFormsEditorService и IServiceProvider?
1 ответ
- Почему MS реализует такие разные вещи внутри диалогов?
Я еще не проверил отраженный код. Мне это неинтересно. Я просто люблю жаловаться.
- Как избавиться от CloseButton и Titlebar?
FontEditor - это просто всплывающее окно, в данный момент я не могу это сделать.
- Должен ли 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;
}
///.....
}