背景:使用Visual Studio 2015的C#WinForms程序。
我的项目中有一个User Control类。我的用户控件类称为'FocusControl'。我的项目包含默认的“Form1”。用户控件未自动填充到我的工具箱中。
我的研究和解决方案的历史:
我找到了更激进的解决方案:
将[ToolboxItem(true)]添加到UserControl。
从App Data中删除旧的工具箱文件,因为它们可能会损坏: 请参见此处:https://weblogs.asp.net/javiervillarreal/visual-studio-not-showing-properly-the-toolbox-items
我不知道如何搜索Google以解决此问题。
研究网站:
修改添加代码:
用户控制 FocusControl.cs
namespace ProjectRaven
{
[ToolboxItem(true)]
public partial class FocusControl : UserControl
{
private const NumberStyles StyleDouble = NumberStyles.AllowDecimalPoint | NumberStyles.AllowThousands | NumberStyles.AllowLeadingSign;
private ThermalCamera _camera;
public FocusControl()
{
InitializeComponent();
}
用户控件设计器 FocusControl.designer.cs
namespace ProjectRaven
{
partial class FocusControl
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Component Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
表格 Form1.cs的
namespace ProjectRaven
{
public partial class Form1 : Form
{
string ipAddressCamera;
public Form1()
{
InitializeComponent();
表单设计器 Form1.Designer.cs
namespace ProjectRaven
{
partial class Form1
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
答案 0 :(得分:2)
过去,一些列出的解决方案帮助了我,但他们今天不会(通过第三方儿童控制课)。但我设法通过首先从代码中使用它来将普通的UserControl继承回到工具箱,如下所示:
在该Form的构造函数中初始化“hidden”CustomUserControl
CustomUserControl con = new CustomUserControl();
Controls.Add被(CON);
con.Dock = DockStyle.Fill;
重建解决方案(我开始一次)
希望它有所帮助。
答案 1 :(得分:0)
您可以将此用户控件放入其自己的项目中并将其作为DLL输出。然后从您的项目中引用此dll。
答案 2 :(得分:0)
找不到修复程序。
我开始了一个新项目并首先复制了用户控件并构建了解决方案。之后我能够在ProjectRaven Components&#39;下看到FocusControl。在我的工具箱的顶部。我只是将控件和代码从旧项目复制/粘贴回新项目。它似乎工作。
如果使用新项目名称创建新项目,请记住更改名称空间。
答案 3 :(得分:0)
确保您的用户控件为 Public ,并且在设计器生成的代码和您的代码背后,都将其声明为“ Public Partial MyControl类”