【问题标题】:Copy Value to other cells将值复制到其他单元格
【发布时间】:2011-09-08 16:23:46
【问题描述】:

我正在使用具有许多列的 DGV。一些列将是空白的,用户需要手动填写这些列。

但是,一些空白的列有相似的值需要填写。

例如,如果我有以下数据:

1 0201     0201R    8X2    1    1   FUJI    8MM
2 0402              8X2    1    1   FUJI    
3 0402              8X2    1    1   FUJI    
4 1650     1650C    8X2    1    1   FUJI    8MM
5 1650     1650C    8X2    1    1   FUJI    8MM

...所以对于第 2 和 3 行,有 2 个空白列 (第 3 和 8 列)

因此,如果用户将0402A 输入到第 2 行第 3 列.. 它也将输入到第 3 行第 3 列,因为 0402 的起始值匹配。此外,如果用户将值12MM 输入到第 2 行第 8 列 (如果该行匹配,它将被放入第 3 行第 8 列)...如下:

1 0201     0201R    8X2    1    1   FUJI    8MM
2 0402     0402A    8X2    1    1   FUJI    12MM     //notice that only '0402A' was entered one time.
3 0402     0402A    8X2    1    1   FUJI    12MM     //same with '12MM'
4 1650     1650C    8X2    1    1   FUJI    8MM
5 1650     1650C    8X2    1    1   FUJI    8MM

更好的解释: 第 2 列值将是与每个输入值进行比较的值。每次在单元格中输入一个值时,它都会将该值复制到 same 列中与原始第二列值等于的每一行中。

问题

  • 这可能吗?我该怎么做?

【问题讨论】:

  • 你有什么代码可以给我们看吗?以便我们为您找到问题。
  • @Blau:刚刚更新了问题
  • @Bolu:还没有可靠的代码..仍在解决这个问题

标签: c# datagridview copy row


【解决方案1】:

编辑:我刚刚了解到 DGV == DataGridView... :) 我对此没有经验,但您应该做类似的事情...

private void dataGridView1_CellValueChanged( object sender, DataGridViewCellEventArgs e )
    {
        dataGridView1.CellValueChanged -= dataGridView1_CellValueChanged;
        DataGridViewRow row = dataGridView1.Rows[e.RowIndex];
        string key = row.Cells[1].Value.ToString();

        foreach ( DataGridViewRow affected in dataGridView1.Rows)
        {
            if ( affected.Cells[1].Value.ToString( ) == key )
            {
                for ( int i=2; i < dataGridView1.Columns.Count; i++ )
                {
                    affected.Cells[i].Value = row.Cells[i].Value;
                }
            }
        }

        dataGridView1.CellValueChanged += dataGridView1_CellValueChanged;
    }

【讨论】:

  • 我认为您也需要使用 e.ColumnIndex 来限制受影响的列。
【解决方案2】:

这是可能的。用户输入任意一列后,程序只需遍历 DGV 的每一行,将第 2 列与正在编辑的行进行比较,并相应地填写该列。

【讨论】:

  • 我如何检查用户何时输入了一列,然后将该列与其他列进行比较?我在想CellValueChanged eventargs.. 但我不知道该怎么做
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-24
  • 2021-03-04
  • 1970-01-01
  • 2012-01-04
相关资源
最近更新 更多