Скопируйте и вставьте в ячейку DataGridView (C #) - PullRequest
1 голос
/ 06 октября 2009

Мне нужно иметь возможность скопировать имя или имена из одного приложения (используя обычные команды копирования), а затем дважды щелкнуть текстовую ячейку в DataGridView, чтобы вставить данные в ячейку сетки. Есть идеи, как этого добиться? Я пытаюсь свести к минимуму использование клавиатуры для этой функции.

Ответы [ 3 ]

8 голосов
/ 07 октября 2009

Это на самом деле проще, чем вы могли ожидать.

Создайте событие CellDoubleClick в вашем DataGridView и вставьте в него следующий код:

private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e) {
   dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = Clipboard.GetText();
}
1 голос
/ 23 марта 2010

Я написал это, чтобы скопировать универсальный:

        DataGridViewSelectedRowCollection dtSeleccionados = dataGrid.SelectedRows;
        DataGridViewCellCollection dtCells;
        String row;
        String strCopiado = "";
        for (int i = dtSeleccionados.Count - 1; i >= 0; i--)
        {
            dtCells = dtSeleccionados[i].Cells;
            row = "";
            for (int j = 0; j < dtCells.Count; j++)
            {
                row = row + dtCells[j].Value.ToString() + (((j + 1) == dtCells.Count) ? "" : "\t");
            }
            strCopiado = strCopiado + row + "\n";
        }
        try
        {
            Clipboard.SetText(strCopiado);
        }
        catch (ArgumentNullException ex)
        {
            Console.Write(ex.ToString());
        }
1 голос
/ 07 октября 2009

Вы должны прикрепить обработчик событий к событию, выбранному в ячейке, и заменить текст в ячейке данными в Clipboard.GetText().

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