答案 0 :(得分:3)
您正在寻找DesignerVerb
。
设计器谓词是链接到事件处理程序的菜单命令。设计师 动词在设计时添加到组件的快捷菜单中。在 Visual Studio,每个设计者动词也使用LinkLabel列出, 在“属性”窗口的“描述”窗格中。
您可以使用动词设置单个属性的值,多个属性,或者仅显示一个关于框的内容。
示例:强>
为您的控件或从ControlDesigner
类或ComponentDesigner
(对于组件)派生的组件创建一个设计器覆盖Verbs
属性并返回一组动词。
请勿忘记添加对System.Design.dll
的引用。
using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Windows.Forms;
using System.Windows.Forms.Design;
[Designer(typeof(MyControlDesigner))]
public class MyControl : Control
{
public string SomeProperty { get; set; }
}
public class MyControlDesigner : ControlDesigner
{
private void SomeMethod(object sender, EventArgs e)
{
MessageBox.Show("Some Message!");
}
private void SomeOtherMethod(object sender, EventArgs e)
{
var p = TypeDescriptor.GetProperties(this.Control)["SomeProperty"];
p.SetValue(this.Control, "some value"); /*You can show a form and get value*/
}
DesignerVerbCollection verbs;
public override System.ComponentModel.Design.DesignerVerbCollection Verbs
{
get
{
if (verbs == null)
{
verbs = new DesignerVerbCollection();
verbs.Add(new DesignerVerb("Do something!", SomeMethod));
verbs.Add(new DesignerVerb("Do something else!", SomeOtherMethod));
}
return verbs;
}
}
}