【问题标题】:C# Get Value of DataGridViewC# 获取 DataGridView 的值
【发布时间】:2016-02-15 18:33:41
【问题描述】:

我遇到了 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 也是一样的。

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

提前谢谢你。

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

Greez Rok

【问题讨论】:

  • 能否在第二个网格中使该列可见=true 并测试一次,如果这是导致问题的原因?还将问题标记为 Winform 或 wpf 或 asp。以适用为准
  • 您好,谢谢您的回答。如果我设置可见 = true,问题仍然存在。奇怪的是,只有第一个 datagridview 工作。如果我制作副本,它们将无法正常工作。
  • 对不起,我只是确保...一个简短的评论,你不需要不同的方法,你可以对两个网格使用相同的方法。您只需要使用var gridview = sender as DataGrid,然后继续使用它。
  • 您要访问的列的索引号是多少?它可能适用于索引号而不是键。
  • 嘿,谢谢,所以我必须在事件处理程序中输入相同的方法?我理解正确吗?所以只有方法是这样工作的: private void AnyDataGridView_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { //code here }

标签: c# winforms datagridview


【解决方案1】:

当您搜索包含列名称的索引fFallDetail.fFilter = row.Cells ["ID"]. Value.ToString (); 时,请检查每列是否是适当的名称。一件事是标题,另一件事是名称。您可以从 GridView 设计器的属性中检查它。

【讨论】:

  • 嘿,谢谢 :) 但是 Headername 和 DataPropertyName 是完全一样的:/
  • 啊我明白你的意思我猜这是我的错:D
  • 是的,这就是问题所在。非常感谢:)
  • 我很高兴能帮上忙。问候!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-05
相关资源
最近更新 更多