Копировать значение в другие ячейки - PullRequest
0 голосов
/ 08 сентября 2011

Я использую 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

Лучшее объяснение: значение столбца 2nd будет значением, которое сравнивается с каждым введенным значением.Каждый раз, когда значение вводится в ячейку, оно копирует это значение в этот такой же столбец в каждой строке, которая на равна исходному значению 2-го столбца.

ВОПРОС

  • Возможно ли это сделать?Как я могу это сделать?

Ответы [ 2 ]

1 голос
/ 08 сентября 2011

РЕДАКТИРОВАТЬ: я только что понял, что 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;
    }
0 голосов
/ 08 сентября 2011

Это возможно.После того, как пользователь ввел какой-либо столбец, вы просто запрограммируете каждую строку DGV, сравните 2-й столбец со строкой редактирования и заполните соответствующий столбец.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...