gpt4 book ai didi

c# - 如何在 datagridview 的列中的文本框中显示选中复选框的数量?

转载 作者:行者123 更新时间:2023-11-30 12:48:57 27 4
gpt4 key购买 nike

我有一个带有 CheckBox 列的 DataGridView。 (这是一个库存系统。)支票用于将元素的序列号从我们公司的一个位置移动到另一个位置。

我还有一个文本框,到目前为止,员工可以在其中输入他要移动的元素数量,然后检查相应的序列号,然后移动元素。

我希望根据检查的序列号数量生成文本框中的数字。有可能吗?此时我已经尝试了大约一百种不同的解决方案,但它们要么以奇怪的错误结束,要么没有给我任何结果。

最佳答案

未经测试,但这应该足够接近了。当我遇到同样的问题时,我读过一篇或十篇关于这个的文章。诀窍是在单击框时立即提交编辑,这将触发 CellValueChanged 事件。然后您可以从那里获取计数。

这应该会在您选中和取消选中复选框时更新文本框:

private void dgv_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
if (dgv.IsCurrentCellDirty && dgv.CurrentCell.OwningColumn.Name == "MyCheckColumn")
dgv.CommitEdit(DataGridViewDataErrorContexts.Commit);
}

private void dgv_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex == -1) //just a guard for the header row
return;

if (dgv.Columns[e.ColumnIndex].Name == "MyCheckColumn")
textBox.Text = dgv.Rows.Cast<DataGridViewRow>().Count(r => Convert.ToBoolean(r.Cells["MyCheckColumn"].Value)).ToString();
}

希望 Linq 能正常工作。如果没有,您将不得不使用 sum 变量以老式的 foreach 方式执行此操作。我知道 DataGridViewRowCollection 有时会很挑剔。

关于c# - 如何在 datagridview 的列中的文本框中显示选中复选框的数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13092647/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com