C# WinForms中无法识别的用户控件

C# WinForms中无法识别的用户控件,c#,winforms,user-controls,C#,Winforms,User Controls,我使用的是Windows窗体,语言是C。我有一个项目计算器。我向该项目添加了一个UserControl。我将控件拖到我的表单中,运行它时,我得到一个错误,即按钮中不存在 我不明白是什么问题。但是当我像这样管理这条线的时候 this.ButtonC = new ButtonC(); 这不会产生任何错误,但每次在运行之前,我都必须改变这一点,我认为这不是正确的解决方案。谢谢您的帮助。我认为问题在于您的按钮和计算器位于不同的命名空间中。将它们更改为相同的命名空间可能会解决此问题 编辑: 我想我理解

我使用的是
Windows窗体
,语言是
C
。我有一个项目
计算器
。我向该项目添加了一个
UserControl
。我将
控件
拖到我的表单中,运行它时,我得到一个错误,即
按钮
中不存在

我不明白是什么问题。但是当我像这样管理这条线的时候

this.ButtonC = new ButtonC();

这不会产生任何错误,但每次在运行之前,我都必须改变这一点,我认为这不是正确的解决方案。谢谢您的帮助。

我认为问题在于您的
按钮和
计算器位于不同的命名空间中。将它们更改为相同的命名空间可能会解决此问题

编辑:


我想我理解这个问题。这应该是自动生成的设计器代码的“bug”。他们只是将名称空间放在控件之前,在您的情况下,它是“计算器”。但是在代码中,名称空间和类是相同的,因此编译器的解释是错误的:它认为Calculator.ButtonC是类Calculator中的一个子类


如果我没有错,只需使名称空间和类名不同就可以了。

实际上名称空间是相同的-Calculator似乎您的设计人员将控件视为Calculator.Calculator中的一个类,但实际上它在Calculator中。只需删除前面的计算器,就像你在帖子中提到的那样,可以完成这项工作。是的,它是这样工作的,但每次运行一次之后,我都必须一次又一次地删除计算器:/I我想我理解这个问题。这应该是自动生成的设计器代码的“bug”。他们只是将名称空间放在控件之前,在您的情况下,它是“计算器”。但是在代码中,名称空间和类是相同的,因此编译器的解释是错误的:它认为Calculator.ButtonC是类Calculator中的一个子类。