Что нужно сделать, когда приложение получает команду «cut» (cntrl-X), чтобы скопировать выбранные ячейки в буфер обмена. Затем вам необходимо удалить эти ячейки из файла datagrid, предварительно обновив базу данных (удалить/удалить данные «cut»), а затем обновить представление datagridview, чтобы отразить это изменение.
Примечание: это зависит от вашего дизайна, если вы хотите дождаться фактического фиксации данных, пока данные больше не будут в буфере обмена, потому что если вы сделаете все изменения постоянными, будет труднее выполнить потенциальный " отменить».
Чтобы скопировать выбранные ячейки код должен выглядеть примерно так:
private void CopyPasteButton_Click(object sender, System.EventArgs e)
{
if (this.DataGridView1
.GetCellCount(DataGridViewElementStates.Selected) > 0)
{
try
{
// Add the selection to the clipboard.
Clipboard.SetDataObject(
this.DataGridView1.GetClipboardContent());
// Replace the text box contents with the clipboard text.
this.TextBox1.Text = Clipboard.GetText();
}
catch (System.Runtime.InteropServices.ExternalException)
{
this.TextBox1.Text =
"The Clipboard could not be accessed. Please try again.";
}
}
Я вижу потенциальную проблему, которая вам может понадобиться обратиться. На вашем снимке вы выбираете только некоторые столбцы вида сетки данных. Если это представление представляет собой всю таблицу базы данных, вы можете захотеть, чтобы пользователь выбрал целую строку вместо частичной строки.
Вам нужно будет закодировать все это. См. [Здесь для похожих вопросов] (http://stackoverflow.com/search?q=user%3A3152130+datagridview+clipboard) – TaW
Возможный дубликат [Как отправить в буфер обмена данных datagridview, таких как CTRL-C] (http: // stackoverflow.com/questions/24090196/how-to-send-to-clipboard-datagridview-content-like-ctrl-c) –