C# 加载表单时自动执行

C# 加载表单时自动执行,c#,winforms,datagridview,C#,Winforms,Datagridview,请帮我这个 我有以下代码(C#): 这段代码只是关于在Datagridview中计算单元格的,它工作得非常好。问题是,我希望在加载表单时自动执行。现在我只是暂时把它放在单元格点击事件中,因为我想测试代码,不知道把代码放在哪里,请帮助我 谢谢。您可以通过两个选项来实现: 首先创建DataGridViewCellEventArgs的新实例,然后指定列索引和行索引,有关详细信息,请参阅此链接: 然后我将所有的e替换为ee,因为在表单加载中,变量e已经被使用了。就这样 private void

请帮我这个

我有以下代码(C#):

这段代码只是关于在Datagridview中计算单元格的,它工作得非常好。问题是,我希望在加载表单时自动执行。现在我只是暂时把它放在单元格点击事件中,因为我想测试代码,不知道把代码放在哪里,请帮助我


谢谢。

您可以通过两个选项来实现:

首先创建DataGridViewCellEventArgs的新实例,然后指定列索引和行索引,有关详细信息,请参阅此链接:

然后我将所有的e替换为ee,因为在表单加载中,变量e已经被使用了。就这样

    private void Form1_Load(object sender, EventArgs e)
    {
        DataGridViewCellEventArgs ee = new DataGridViewCellEventArgs(1, 1);

        decimal quantity = 0, avai = 0, newavai = 0;
        decimal totalstock = 0, newtotalstock = 0;

        if (decimal.TryParse(G1.Rows[ee.RowIndex].Cells["Quantity"].Value.ToString(), out quantity) && decimal.TryParse(G1.Rows[ee.RowIndex].Cells["AvailableStock"].Value.ToString(), out avai))
        {
            newavai = avai + quantity;
            G1.Rows[ee.RowIndex].Cells["AvailableStock"].Value = newavai.ToString();
        }
        if (decimal.TryParse(G1.Rows[ee.RowIndex].Cells["TotalStock"].Value.ToString(), out totalstock) && decimal.TryParse(G1.Rows[ee.RowIndex].Cells["Quantity"].Value.ToString(), out quantity))
        {
            newtotalstock = totalstock + quantity;
            G1.Rows[ee.RowIndex].Cells["TotalStock"].Value = newtotalstock.ToString();
        }
    }
另一个选项是,您可以使用以下命令调用click事件处理程序:

 private void Form1_Load(object sender, EventArgs e)
    {
        DataGridViewCellEventArgs ee = new DataGridViewCellEventArgs(1, 1);
        G1_CellClick(sender, ee);
    }

private void G1_CellClick(object sender, DataGridViewCellEventArgs e)
    {
       decimal quantity = 0, avai = 0, newavai = 0;
        decimal totalstock = 0, newtotalstock = 0;

        if (decimal.TryParse(G1.Rows[e.RowIndex].Cells["Quantity"].Value.ToString(), out quantity) && decimal.TryParse(G1.Rows[e.RowIndex].Cells["AvailableStock"].Value.ToString(), out avai))
        {
            newavai = avai + quantity;
            G1.Rows[e.RowIndex].Cells["AvailableStock"].Value = newavai.ToString();
        }
        if (decimal.TryParse(G1.Rows[e.RowIndex].Cells["TotalStock"].Value.ToString(), out totalstock) && decimal.TryParse(G1.Rows[e.RowIndex].Cells["Quantity"].Value.ToString(), out quantity))
        {
            newtotalstock = totalstock + quantity;
            G1.Rows[e.RowIndex].Cells["TotalStock"].Value = newtotalstock.ToString();
        }
    }

为什么不把它放在Form_Load事件处理程序中?@WillyDavidJr您不能在Form_Load中调用e.RowIndex,因为它与datagridview相关,如果您在Form Load中进行数据绑定,您可以这样做。当然不会有e。也许你需要告诉我们更多你想做什么?@MickyD就像一个标题,我想当我加载表单时,这个代码会自动执行。我所需要的就是照我和威利说的去做。实际上@Willy在下面有一个很好的答案:)很抱歉这个愚蠢的问题,为什么我要创建DataGridViewCellEventArgs,出现了以下错误:方法必须有一个返回类型,因为此代码在dataGridView1\u CellClick事件处理程序下,对吗?你在帖子中说这是在单元格点击事件处理程序下,它需要DataGridViewCellEventArgs,除非我遗漏了什么@SerenadeYes代码在G1_CellClick(dgv:D的名称)下。您可以告诉我在下面的链接中创建DataGridViewCellEventArgs的新实例
PublicDataGridViewCellEventArgs(int-columnIndex,int-rowIndex)
我把这段代码放在了我的项目中,但也遇到了错误,我只是投了赞成票。很遗憾,您还需要2分。请重试聊天:)
 private void Form1_Load(object sender, EventArgs e)
    {
        DataGridViewCellEventArgs ee = new DataGridViewCellEventArgs(1, 1);
        G1_CellClick(sender, ee);
    }

private void G1_CellClick(object sender, DataGridViewCellEventArgs e)
    {
       decimal quantity = 0, avai = 0, newavai = 0;
        decimal totalstock = 0, newtotalstock = 0;

        if (decimal.TryParse(G1.Rows[e.RowIndex].Cells["Quantity"].Value.ToString(), out quantity) && decimal.TryParse(G1.Rows[e.RowIndex].Cells["AvailableStock"].Value.ToString(), out avai))
        {
            newavai = avai + quantity;
            G1.Rows[e.RowIndex].Cells["AvailableStock"].Value = newavai.ToString();
        }
        if (decimal.TryParse(G1.Rows[e.RowIndex].Cells["TotalStock"].Value.ToString(), out totalstock) && decimal.TryParse(G1.Rows[e.RowIndex].Cells["Quantity"].Value.ToString(), out quantity))
        {
            newtotalstock = totalstock + quantity;
            G1.Rows[e.RowIndex].Cells["TotalStock"].Value = newtotalstock.ToString();
        }
    }