C# C获取DataGridView的值

C# C获取DataGridView的值,c#,winforms,datagridview,C#,Winforms,Datagridview,我在2个DataGrid视图中遇到问题。两者都是一样的。唯一不同的是,第二个有一个过滤器来分类关闭的案例 因此有: faelleDataGridView faelleDataGridView2 我只想选择所选行的列ID的值。之后,它将打开一个新表单,如果我为新过滤器设置变量,我只想看到与ID匹配的条目 这将在我双击单元格后开始 这是我的源代码: private void faelleDataGridView_CellDoubleClick(object sender, DataG

我在2个DataGrid视图中遇到问题。两者都是一样的。唯一不同的是,第二个有一个过滤器来分类关闭的案例

因此有: faelleDataGridView faelleDataGridView2

我只想选择所选行的列ID的值。之后,它将打开一个新表单,如果我为新过滤器设置变量,我只想看到与ID匹配的条目

这将在我双击单元格后开始

这是我的源代码:

        private void faelleDataGridView_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
    { // This one is working with no errors

        if (e.RowIndex >= 0)
        {
            FallDetail fFallDetail = new FallDetail();
            DataGridViewRow row = faelleDataGridView.Rows[e.RowIndex];
            //MessageBox.Show(row.Cells["ID"].Value.ToString());
            fFallDetail.fFilter = row.Cells["ID"].Value.ToString();
            fFallDetail.Show();
        }

    }

    private void faelleDataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
    { // This one will result an error
        if (e.RowIndex >= 0)
        {
            FallDetail fFallDetail = new FallDetail();
            DataGridViewRow row = faelleDataGridView1.Rows[e.RowIndex];
            //MessageBox.Show(row.Cells["ID"].Value.ToString());
            fFallDetail.fFilter = row.Cells["ID"].Value.ToString();
            fFallDetail.Show();
        }
    }
在我开始第二个之后,我犯了一个错误。上面说,他找不到名为ID的细胞

从德语翻译的错误:System.Windows.Forms.dll发生System.ArgumentException类型的异常错误

其他信息:找不到列ID

我已检查ID列是否仅可见=false。但在第一个datagridview中也有相同的情况

你知道我如何解决这个问题,或者我做错了什么吗

先谢谢你

通过在属性中使用正确的名称修复了此问题



当您搜索索引fFallDetail.fFilter=row.Cells[ID]时,Greez Rok

。Value.ToString;这是列的名称,请检查每列是否为适当的名称。一个是标题,另一个是名称。搜索索引fFallDetail.fFilter=row.Cells[ID]时,可以从GridView设计器中的属性中进行检查。

。Value.ToString;这是列的名称,请检查每列是否为适当的名称。一个是标题,另一个是名称。您可以从GridView设计器中的属性中进行检查。

是否可以使列在第二个网格中可见=true并测试一次,如果这是导致问题的原因?同时将问题标记为Winform、wpf或asp。无论哪一个合适,谢谢你的回答。如果我设置visible=true,问题仍然存在。奇怪的是,只有第一个datagridview在工作。如果我复制了它们,它们就不工作了。对不起,我只是想确定一下……一个简短的评论,你不需要有不同的方法,你可以对两个网格使用相同的方法。您只需要使用var gridview=sender作为DataGrid,然后继续使用它。您试图访问的列的索引号是多少?它可能使用索引号而不是键。嘿,谢谢,所以我必须为事件处理程序输入相同的方法?我理解对了吗?因此,该方法的工作原理如下:private void AnyDataGridView_CellDoubleClickobject sender,DataGridViewCellEventArgs e{//code here}如果导致问题,是否可以在第二个网格中使列visible=true并测试一次?同时将问题标记为Winform、wpf或asp。无论哪一个合适,谢谢你的回答。如果我设置visible=true,问题仍然存在。奇怪的是,只有第一个datagridview在工作。如果我复制了它们,它们就不工作了。对不起,我只是想确定一下……一个简短的评论,你不需要有不同的方法,你可以对两个网格使用相同的方法。您只需要使用var gridview=sender作为DataGrid,然后继续使用它。您试图访问的列的索引号是多少?它可能使用索引号而不是键。嘿,谢谢,所以我必须为事件处理程序输入相同的方法?我理解对了吗?因此,该方法的工作原理如下:private void AnyDataGridView\u CellDoubleClickobject发送者,DataGridViewCellEventArgs e{//code here}嘿,谢谢:但是Headername和DataPropertyName完全相同:/啊,我明白了你的意思,我想这是我的错:这就是问题所在。非常感谢:我很高兴我帮了忙。问候语!嘿,谢谢:但是Headername和DataPropertyName完全一样:/啊,我明白你的意思了,我想那是我的错:这就是问题所在。非常感谢:我很高兴我帮了忙。问候语!