【问题标题】:constructor on type "" not found when inheriting forms c# forms继承表单时找不到类型“”的构造函数c#表单
【发布时间】:2017-07-17 03:15:26
【问题描述】:

创建了一个继承自另一个表单的表单,但由于某种原因,我在找不到类型“baseForm”的错误构造函数。这是继承类的构造函数:

public partial class loadHtmlFormsDatabaseForm :      NEA_Official.createHtmlFormsForm
{
    List<field> listOfFields = new List<field>();
    static string username1;
    int originalListOfFieldsCount;
    htmlFormsProject loadedProject;

    public loadHtmlFormsDatabaseForm(htmlFormsProject loadProject, string username) : base(username1)
    {
        username1 = username;
        loadedProject = loadProject;
        InitializeComponent();
    }

这是基类的构造函数:

    public partial class createHtmlFormsForm : Form
{
    List<field> listOfFields = new List<field>();
    string username = "";

    public createHtmlFormsForm(string username1)
    {
        username = username1;
        InitializeComponent();
    }

【问题讨论】:

  • 看起来不错。我可以复制相同的案例,并且没有任何错误。你能判断它是运行时错误还是编译时错误?哪一行代码显示错误?
  • @ChetanRanpariya 程序运行良好,但不允许我查看表单的设计
  • 当您尝试查看表单的设计时会发生什么?

标签: c#


【解决方案1】:

您可以通过重载基类中没有参数的构造函数来修复它,如下所示:

public partial class createHtmlFormsForm : Form
{
 List<field> listOfFields = new List<field>();
 string username = "";

 public createHtmlFormsForm(string username1)
 {
    username = username1;
    InitializeComponent();
 }
 public createHtmlFormsForm()
 {
    InitializeComponent();
 }
}

如果您不需要没有参数的构造函数,您可以将其创建为私有的:

public partial class createHtmlFormsForm : Form
{
 List<field> listOfFields = new List<field>();
 string username = "";

 public createHtmlFormsForm(string username1)
 {
    username = username1;
    InitializeComponent();
 }
// private contructor with no parameter
 private createHtmlFormsForm()
 {
    InitializeComponent();
 }
}

或者你可以使用过时的属性:

public partial class createHtmlFormsForm : Form
{
 List<field> listOfFields = new List<field>();
 string username = "";

 public createHtmlFormsForm(string username1)
 {
    username = username1;
    InitializeComponent();
 }

 [Obsolete("Designer only", true)]
 public createHtmlFormsForm()
 {
    InitializeComponent();
 }
}

【讨论】:

    【解决方案2】:

    找到但发送错误的参数。

    : base(username1)改为: base(username)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-25
      • 2013-01-24
      • 1970-01-01
      相关资源
      最近更新 更多