Как дублировать строку в Datagridview с помощью кнопки - PullRequest
0 голосов
/ 13 февраля 2019

enter image description here

У меня есть DataGridView со столбцом, который заполнен кнопками.Теперь я хочу, чтобы при каждом нажатии кнопки выбранная строка в DataGridView копировалась и вставлялась непосредственно за выбранной строкой.Но: я только хочу дублировать значение 2 конкретных столбцов.И между этими двумя конкретными столбцами нужно посчитать цифры от 1, начиная вручную, вводя их до 2, 3, 4 и т. Д. При каждом нажатии кнопки дублирования.Другие столбцы должны быть пустыми.Как я могу это понять?

Большое спасибо заранее

1 Ответ

0 голосов
/ 14 февраля 2019

Я надеюсь, что это делает работу

// Enable AllowUserToAddRows
dgv.AllowUserToAddRows = true;

    private void dgv_CellClick(object sender, DataGridViewCellEventArgs e)
    {
        DataGridView dgv = sender as DataGridView;

        // If button clicked
        if (e.ColumnIndex == 0)
        {
            // Get values what you want to use, the Cell 2 is already increased
            var value1 = dgv.Rows[e.RowIndex].Cells[1].Value;
            var value2 = dgv.Rows[e.RowIndex].Cells[2].Value;

            // Define the maximum id and the row index of it
            int maxId = Convert.ToInt32(value2);
            int latestRowIndex = e.RowIndex;

            for (int i = 0; i < dgv.Rows.Count; i++)
            {
                // Select the highest id of selected item and get its row index
                if (dgv.Rows[i].Cells[1].Value == value1)
                {
                    maxId = Convert.ToInt32(dgv.Rows[i].Cells[2].Value);
                    latestRowIndex = i;
                }
            }

            // Insert a new row behind max id one
            dgv.Rows.Insert(latestRowIndex + 1);

            // Set the previously stored values and increase the stored Cell 2 value
            dgv.Rows[latestRowIndex + 1].Cells[1].Value = value1;
            dgv.Rows[latestRowIndex + 1].Cells[2].Value = maxId + 1;
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...