【问题标题】:CS7036 C# WinForm There is no argument given that corresponds to the required formal parameter [duplicate]CS7036 C# WinForm没有给出与所需形式参数相对应的参数[重复]
【发布时间】:2020-05-19 04:28:33
【问题描述】:

我有以下错误

CS7036 C# 没有给出与所需参数对应的参数 形参 'dt' 'Cadbury_Chocolate.Cadbury_Chocolate(Cart)'

巧克力品牌列表.cs

private void pictureBox1_Click(object sender, EventArgs e)
{
   new Cadbury_Chocolate().Show();
}

Cadbury_Chocolate.cs

public partial class Cadbury_Chocolate : Form
{
    Cart dtGrid;

    public Cadbury_Chocolate(Cart dt)
    {
        InitializeComponent();
        this.dtGrid = dt;
    }

    private void button1_Click(object sender, EventArgs e)
    {
        dtGrid.dataGridView1.Rows.Add(label1,label2); 
    }
}

购物车.cs

public partial class Cart : Form
{
    public Cart()
    {
        InitializeComponent();
    }

    private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
    {

    }
}

我该如何解决?

【问题讨论】:

标签: c# winforms


【解决方案1】:

您在这一行new Cadbury_Chocolate().Show(); 中调用了类构造函数Cadbury_Chocolate(),但您只定义了一个构造函数,该构造函数采用Cart 类型的一个参数,即Cadbury_Chocolate(Cart dt)

考虑:

  1. 添加/定义另一个没有参数的构造函数Cadbury_Chocolate()
  2. 通过向已定义的构造函数Cadbury_Chocolate(Cart dt) 提供Cart 参数来调整您的类实例化。

您可能想了解using constructors

这里已经回答了提到的错误:There is no argument given that corresponds to the required formal parameter - .NET Error

【讨论】:

    【解决方案2】:

    您没有提供必需的参数“Cart dt”。

    private void pictureBox1_Click(object sender, EventArgs e)
    {
         new Cadbury_Chocolate(cart).Show();
    }
    

    将“购物车”替换为您的购物车参考。

    【讨论】:

    • 它显示#CS0119 'Cart' 是一种类型,在给定的上下文中无效
    • 因为您试图传递类型 - Cart,而不是已经初始化的 Cart 类型。购物车是您的起始形式吗?如果是这种情况,您应该首先将其引用传递给 Chocolate Brand List,然后从那里传递给 Cadbury_Chocolate。无论如何,您可能需要一个包含对购物车表单的引用的字段。阅读有关构造函数的更多信息,Microsoft 在其“构造函数”文档页面中有很好的解释和示例。
    猜你喜欢
    • 2021-07-18
    • 1970-01-01
    • 1970-01-01
    • 2019-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-13
    • 1970-01-01
    相关资源
    最近更新 更多