gpt4 book ai didi

c# - DataGridView CheckBox 行返回 null,直到单击复选框

转载 作者:行者123 更新时间:2023-12-02 20:21:57 27 4
gpt4 key购买 nike

我创建了一个带有 DataGridView 的 Windows 窗体,并添加了一列,其中每行包含一个复选框。将 DataTable 绑定(bind)到 DataGridView,然后添加 DataGridViewCheckBoxColumn。

当我的表单关闭时,我尝试获取每行中复选框的值,但如果用户在任何时候都没有选中一行中的复选框,那么当我感觉到它时,程序只会将其值返回为 null应该返回 false(未检查)。这是为什么?我该如何解决?

//add checkbox column
DataGridViewCheckBoxColumn mCheckboxColumn = new DataGridViewCheckBoxColumn();
mCheckboxColumn.Name = "chk";
mCheckboxColumn.HeaderText = "checkbox";
dgv.Columns.Add(mCheckboxColumn);



//looping through each row
foreach (DataGridViewRow row in dgv.Rows)
{
if ((bool)row.Cells["chk"].Value == true)
{
MessageBox.Show("checked!");
}
}

最佳答案

我相信您遇到空值的原因是因为您在将新列绑定(bind)到数据源后将新列添加到数据网格中。因此,在未选中的情况下,它没有默认值。

您可以通过以下小改动来解决这个问题。 ConvertTo.Boolean 在遇到 null 时将返回 false,而我认为 Boolean.Parse 的转换为 (bool) 则不会。

foreach (DataGridViewRow row in dataGridView1.Rows)
{
DataGridViewCheckBoxCell cell = (DataGridViewCheckBoxCell)row.Cells["chk"];

if (Convert.ToBoolean(cell.Value))
{
MessageBox.Show("checked!");
}
}

希望有帮助

关于c# - DataGridView CheckBox 行返回 null,直到单击复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51173354/

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