自定义控件 – 属性框中的可点击链接
我正在使用C#进行自定义控件,我需要添加一个属性框的链接(所以我可以在单击后显示一个表单)。
这是一个例子:
您正在寻找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; } } }