Если вы собираетесь добавить несколько пользовательских глаголов в конструктор Form
, вам нужно создать новый пользовательский Designer
, наследуя от DocumentDesigner
и переопределяя множество свойств и методов для воссоздания FormDesigner
.
Как более простое решение, вы можете настроить дизайнер базовой формы вашей формы.Допустим, у вас есть Form1
и вы хотите иметь Do Something
глагол для него.Для этого, если BaseForm
является базовой формой для Form1
, достаточно добавить следующий код к BaseForm
:
//You may want to add null checking to the code.
protected override void OnHandleCreated(EventArgs e)
{
base.OnHandleCreated(e);
if (!DesignMode)
return;
var host = (IDesignerHost)this.Site.GetService(typeof(IDesignerHost));
var designer = host.GetDesigner(this);
designer.Verbs.Add(new DesignerVerb("Do Something", (obj, args) =>
{
MessageBox.Show("Something done!");
}));
}
В результате Do Something будет добавлено в контекстное меню для вашего Form1
:
Если вы хотите пойти по более сложному пути, здесь вы можете найти исходный коддля FormDocumentDesigner
, полученного из DocumentDesigner
.