在工具条标签 c#中显示 datagridview 所选行的总计

Jiale Xue - MSFT 34,276 信誉分 Microsoft 供应商
2024-04-11T06:22:00.75+00:00

在我的 win 表单应用程序中,我需要在 toolstrip 标签中显示我的 datagridview 所选行的总和,我目前能够计算总和并显示在我的数据网格视图中所有行的标签中。但我的要求是:

如果 datagridview 被筛选,则标签应仅显示该筛选行的总和。 如果用户在整个 datagridview 中选择某些行,则应仅显示所选行的总和。 请帮我如何做到这一点,这是我到目前为止的代码:

int A = 0, B = 0;
                for (A = 0; A < iP_SpoolsDataGridView.Rows.Count; ++A)
                {
                    B += Convert.ToInt32(iP_SpoolsDataGridView.Rows[A].Cells[20].Value);
                }
                Total.Text = B.ToString();

我的 Winform 的图像: mtf1y.png

Note:此问题总结整理于: Show total of datagridview selected rows in toolstrip label c#

Windows 窗体
Windows 窗体
一组用于开发图形用户界面的 .NET Framework 托管库。
84 个问题
Visual Studio
Visual Studio
一系列 Microsoft 集成开发工具套件,用于生成适用于 Windows、Web 和移动设备的应用程序。
45 个问题
C#
C#
一种面向对象的类型安全的编程语言,它起源于 C 语言系列,包括对面向组件的编程的支持。
112 个问题
0 个注释 无注释
{count} 票

接受的答案
  1. Hui Liu-MSFT 40,786 信誉分 Microsoft 供应商
    2024-04-11T09:40:00.9566667+00:00

    首先,您可以使用 BindingSource.Filter 属性来筛选具有 dateTimePicker 值的行。 然后,可以使用 DataGridView.SelectedRows 属性获取所选行的集合。 同时,您需要在 DataGridView.SelectionChanged 事件中运行这些内容,该事件在当前选择更改时发生。 这是我的测试代码,您可以参考。(在我的测试中,我计算列 Field2 的总和)

    public Form1()  
    {  
        InitializeComponent();  
        dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;  
    }  
      
    private void button1_Click(object sender, EventArgs e)  
    {  
        BindingSource bs = new BindingSource();  
      
        bs.DataSource = dataGridView1.DataSource;  
        bs.Filter = string.Format("Field2 >= #{0:MM/dd/yyyy}# And Field2 <= #{1:MM/dd/yyyy}#", dateTimePicker1.Value, dateTimePicker2.Value);  
      
    }  
      
    private void dataGridView1_SelectionChanged(object sender, EventArgs e)  
    {  
        int total = dataGridView1.SelectedRows.Cast<DataGridViewRow>().Sum(row => (int)row.Cells[1].Value);  
        label1.Text = total.ToString();  
    }  
    

    测试结果: 59028-121.gif


    如果回复有帮助,请点击“接受答案”并点赞。

    注意:如果您想接收此线程的相关电子邮件通知,请按照我们文档中的步骤启用电子邮件通知。

    1 个人认为此答案很有帮助。
    0 个注释 无注释

1 个其他答案

排序依据: 非常有帮助
  1. Deleted

    由于违反了我们的《行为准则》,此答案已被删除。 在采取措施之前,已通过自动检测手动报告或识别该答案。 有关详细信息,请参阅我们的行为准则


    已关闭批注。 了解详细信息