如何在“属性”窗口中为自定义控件创建链接?

时间:2010-11-22 16:04:22

标签: .net user-controls windows-forms-designer

在.NET Framework中,有几个控件在Visual Studio设计器的“属性”窗口中的属性列表下列出了许多链接。 (例如TabControl,ComboBox)

我已经构建了一个自定义控件,我想在属性窗口上创建一个像TabControl和ComboBox一样的链接。单击链接时,应调用我的控件上的某个方法。

我该怎么做?

谢谢!

3 个答案:

答案 0 :(得分:1)

我认为你正在寻找DesignerVerb课程。

答案 1 :(得分:1)

您需要为控件创建自定义设计器并覆盖Verbs属性。第一次调用覆盖时,创建一个DesignerVerbCollection并填充它。在每次后续通话中返回集合。

编辑:顺便说一句,您通过派生System.Windows.Forms.Design.ControlDesigner来创建设计器,并通过将此属性放在您的类上将其应用于您的类:

 [Designer(MyControlDesigner)]
 public class MyControl
 {
    // ...
 }

答案 2 :(得分:0)

devarticles

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; 
} 

}