【问题标题】:How to put extended WinForms Control on ToolBox如何在工具箱上放置扩展的 WinForms 控件
【发布时间】:2023-03-06 05:11:01
【问题描述】:
我打算为 TextBox 添加以下功能:
public class TextBoxExt : TextBox
{
protected override void OnKeyPress(KeyPressEventArgs e)
{
base.OnKeyPress(e);
}
}
问题是我们如何使用这个TextBoxExt?有没有办法把这个类放到 ToolBox 上,这样我们就可以把它拖放到表单上?如果没有,使用 TextBoxExt 的最佳方式是什么?
【问题讨论】:
标签:
c#
visual-studio
winforms
【解决方案1】:
我相信有几种方法可以让您的控件出现在工具箱中:
它所在的项目必须包含在您的开放解决方案中,并且该项目必须已编译/构建到程序集中。如果您同时处理控件和使用该控件的项目(例如,构建解决方案也将重新构建控件的项目),这是要走的路。。 p>
您可以右键单击工具箱以添加新项目...在结果对话框中,您可以浏览到包含控件的程序集并以这种方式添加(或将其添加到 GAC,在这种情况下您可以直接从列表中选择它而无需浏览)。如果包含您的控件的项目不属于您的解决方案并且您只处理已编译的 DLL(例如,构建解决方案不会重新构建控件的项目)。
【解决方案2】:
还有一个简单的选项可以将控件添加到工具箱中,
-
在 VS 工具箱中创建一个新的工具箱标签。例如说“我自己的控制”。
-
将您可以控制的程序集拖到新创建的选项卡中,然后放下。
- 您可以在工具箱中看到添加的控件。
此方法的主要优点是,如果您在单个程序集中有多个控件,则无需在“添加组件”对话框中搜索并选择它们。 VS 会为你做这件事,并会在 Toolbox 中自动添加所有这些。
希望这会有所帮助。
【解决方案3】:
只需编译您的应用程序 - TextBoxExt 应该会显示在您的工具箱中(只要您打开表单设计器,您就会在顶部看到它),您可以将它拖到您的表单上。
这里的关键可能是打开表单设计器 - 否则,您将看不到工具箱中的自定义用户控件。