在.NET Framework中,有几个控件在Visual Studio设计器的“属性”窗口中的属性列表下列出了许多链接。 (例如TabControl,ComboBox)
我已经构建了一个自定义控件,我想在属性窗口上创建一个像TabControl和ComboBox一样的链接。单击链接时,应调用我的控件上的某个方法。
我该怎么做?
谢谢!
答案 0 :(得分:1)
我认为你正在寻找DesignerVerb课程。
答案 1 :(得分:1)
您需要为控件创建自定义设计器并覆盖Verbs
属性。第一次调用覆盖时,创建一个DesignerVerbCollection
并填充它。在每次后续通话中返回集合。
编辑:顺便说一句,您通过派生System.Windows.Forms.Design.ControlDesigner
来创建设计器,并通过将此属性放在您的类上将其应用于您的类:
[Designer(MyControlDesigner)]
public class MyControl
{
// ...
}
答案 2 :(得分:0)
public class DirectoryTreeDesigner : ControlDesigner
{
protected override void PostFilterProperties(
System.Collections.IDictionary properties)
{
properties.Remove("Nodes");
}
DesignerVerbCollection verbs = new DesignerVerbCollection();
public DirectoryTreeDesigner()
{
// Configure the designer verb collection.
string[] drives = System.IO.Directory.GetLogicalDrives();
foreach (string drive in drives)
{
verbs.Add(new DesignerVerb("Set Drive " + drive, new EventHandler(OnVerb)));
}
}
public override DesignerVerbCollection Verbs
{
get { return verbs; }
}
protected void OnVerb(object sender, EventArgs e)
{
// Retrieve the selected drive.
char driveLetter = ((DesignerVerb)sender).Text[10];
// Adjust the associated control.
((DirectoryTree)this.Control).Drive = driveLetter;
}
}