当我在 C# 中向表单添加泛型类型时,出现类似
的错误InitializeComponent does not exist in the current context
我的所有组件都一样。
代码如下:
public partial class Form1<T> : Form
{
public Form1()
{
InitializeComponent();
}
}
最佳答案
首先,Form1
是一个部分类,它存在于多个文件中。
由于您更改了 Form1.cs
文件具有通用 Form1<T>
,还需要改相应的Form1.Designer.cs
文件具有通用类。
否则 C# 编译器会将这两个文件视为包含两个不同的类,一个 Form1<T>
和一个Form1
.虽然它们在技术上具有相同的名称,但它们是不同的。您可以同时声明具有相同名称的泛型和非泛型类型。
因此更改这两个文件。
话虽如此,您不能拥有通用表单。当您成功让编译器编译代码(进行上述更改)时,您会发现 Visual Studio 中的表单设计器不再满足您的要求,无法直观地设计表单。
如对此答案的评论中所述,如果您可以在没有表单设计器的情况下生活,那么这将不会成为阻碍。
但是,如果您离不开可视化表单设计器,那么除了删除 Form1
的通用参数外,这个问题无法修复。您首先添加的。
所以你应该尝试找到一种不同的方式来做你想做的事。
关于c# - 将泛型添加到表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33300338/