以编程方式检查DataGridView中的复选框

时间:2014-10-23 21:47:02

标签: c# .net datagridviewcheckboxcell

我看过一些类似这个问题的帖子,但我还没有提出我的回答,所以我想我会再次浮起来看看会发生什么......

我使用ExcelDNA使用C#.NET将API与Excel集成。我有一个DataGridView,我想检查列表中已存在的项目。

以下代码与按钮单击事件绑定时有效,但在方法中调用代码时则无效。

private void SelectAllItems()
{
    foreach (DataGridViewRow row in itemsBySupplier.Rows)
    {
        DataGridViewCheckBoxCell check = (DataGridViewCheckBoxCell)row.Cells["selectItem"];
        check.Value = check.TrueValue;
    }
}

我也在其他地方遇到同样的问题:

foreach (DataGridViewRow row in itemsBySupplier.Rows)
{
    DataGridViewCheckBoxCell check = (DataGridViewCheckBoxCell)row.Cells["selectItem"];

    string hid = row.Cells["Hid"].Value.ToString();
    if (Ws.ToCreate[_supplier].Count(i => i.Hid == hid) > 0)
    {
        check.Value = check.TrueValue;
    }
}

我已经研究了几个小时,完全是空的。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:4)

您可以通过将值设置为true来执行此操作。您无需转换为复选框单元格。

    private void SelectAllItems()
    {
        foreach (DataGridViewRow row in itemsBySupplier.Rows)
        {
            // This will check the cell.
            row.Cells["selectItem"].Value = "true";
        }
    }

foreach (DataGridViewRow row in itemsBySupplier.Rows)
{
    string hid = row.Cells["Hid"].Value.ToString();

    if (Ws.ToCreate[_supplier].Count(i => i.Hid == hid) > 0)
    {
        row.Cells["selectItem"].Value = "true";                        
    }
}