123 个问题
首先,您可以使用 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();
}
测试结果: 最好的问候, Daniel Zhang
如果回复有帮助,请点击“接受答案”并点赞。
注意:如果您想接收此线程的相关电子邮件通知,请按照我们文档中的步骤启用电子邮件通知。