Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从gridview中计算选中的复选框_C# - Fatal编程技术网

C# 如何从gridview中计算选中的复选框

C# 如何从gridview中计算选中的复选框,c#,C#,在我的网格中,我有复选框,在网格外有一个按钮。当我点击按钮时,我只想获得网格中带有复选框的选定行的计数。我们怎么能做到呢 在“我的网格视图动态创建”复选框和其他列中,我有“站点id”列,我需要获取站点id复选框中选中的是什么 我使用这种编码 int count = dataGridView1.Rows.Count; for (int i = 0; i < count; i++) { int j = dataGridView1.SelectedCells[i].RowIndex;

在我的网格中,我有复选框,在网格外有一个按钮。当我点击按钮时,我只想获得网格中带有复选框的选定行的计数。我们怎么能做到呢

在“我的网格视图动态创建”复选框和其他列中,我有“站点id”列,我需要获取站点id复选框中选中的是什么

我使用这种编码

int count = dataGridView1.Rows.Count;
for (int i = 0; i < count; i++)
{
   int j = dataGridView1.SelectedCells[i].RowIndex;
   clsSaveStatic.SiteID = int.Parse(dataGridView1.Rows[j].Cells[1].Value.ToString();
}
int count=dataGridView1.Rows.count;
for(int i=0;i
最后返回选中的复选框。
但我的要求是我需要的所有检查值都一一对应。

您可以参考以下链接


http://stackoverflow.com/questions/1237829/datagridview-checkbox-column-value-and-functionality

好的,现在我举一些我以前做过同样工作的代码示例,我的部分代码可能对您有用

private List<int>() GetSiteId()
{
    var listIds=new List<int>();

    for (int i = 0; i < grid1.RowCount - 1; i++)
    {
        if (grid1.Rows[i].Cells["SelectCol"].Value != null)
        {
            bool value = Convert.ToBoolean(grid1.Rows[i].Cells["SelectCol"].Value);
            if (value)
            {
                 listId.Add(Convert.ToInt32(grid1.Rows[i].Cells["SiteID"].Value));
            }
        }
    }
    return listId;
}
private List()GetSiteId()
{
var listIds=新列表();
对于(int i=0;i

因此,如果value=true,则选中它

,您必须循环遍历DataGridView的行,并检查复选框单元格

foreach (DataGridViewRow item in dataGridView1.Rows)
{
       //if checkbox is checked
       if(Convert.ToBoolean((item.Cells["Chkboxcolname"] as DataGridViewCheckBoxCell).FormattedValue))
              // here you can access values based on column names
              //item.Cells["Idcolumn"].FormattedValue
}
现在,如果选中该单元格,则当计算为布尔值时,该单元格的值将为
true

Dude

以下是我所做的:

将网格中的CellValueChanged事件设置为检查“真/假”值

如果复选框中的值在每次更改时都为true,则此标识将被删除

然后

要“刷新”计数,只需将焦点设置在另一个单元格上。好吧,我发现的唯一方法是在用户检查DGV中的某些内容时发送一个“选项卡”

在DGV的“CellClick”事件中,您将这样做:

SendKeys.Send("{TAB}");
完成了。这是我强制刷新的唯一方法。简单干净,但效果很好


查看它的外观:

不确定您想要什么值,所有选中的值都将有值
True
?我需要所有选中的行值。请给出一些其他示例。请帮助我该示例不符合我的要求。因此,请给出另一个示例。它通过行循环并获取选中的值,您真正想要什么?您想要什么你的意思是一个接一个吗?在我的网格视图中,动态绑定我有站点Id列的值,我选中表单中的多个复选框what are check box selected,即我需要的所有站点Id值
SendKeys.Send("{TAB}");