如何在ToolBox上放置扩展的WinForms控件

dav*_*led 10 c# winforms

我计划使用以下内容向TextBox添加功能:

   public class TextBoxExt : TextBox  
    {
        protected override void OnKeyPress(KeyPressEventArgs e)
        {
            base.OnKeyPress(e);
        }

    }
Run Code Online (Sandbox Code Playgroud)

问题是我们如何使用这个TextBoxExt?反正有没有把这个类放到ToolBox上,以便我们可以将它拖放到表单上?如果没有,使用TextBoxExt的最佳方法是什么?

Cal*_*nus 15

  1. 使用TextBoxExt构建项目,确保编译好.
  2. 使用您希望TextBoxExt打开的表单,打开工具箱,右键单击并选择"选择项目"
  3. 浏览到您编译的.exe或dll 1)
  4. 确保TextBoxExt旁边有一个勾号,按确定
  5. TextBoxExt应出现在工具箱中,将其拖到表单上

(还有另一种方法,打开设计器文件并将TextBox的实例重命名为TextBoxExt,但有些人认为手工编辑设计器文件是危险的)


Adi*_*ono 8

我知道这是一个非常古老的问题,但对于像我这样有同样问题的其他人可能仍然有用 - 因为它仍然在谷歌的顶部:)

您可能会对使用ToolboxItemAttribute(http://msdn.microsoft.com/en-us/library/system.componentmodel.toolboxitemattribute (v=vs.110 ) .aspx)感兴趣.

我在最后解决了这个问题.

[ToolboxItem(true)]
public class PanelTitle : LabelControl  {
   // Whatever code to override LabelControl here...
}
Run Code Online (Sandbox Code Playgroud)

重建解决方案,扩展控件应显示在工具箱中.