2017-02-22 10 views
0

Я связал DataTable с DataGridView, как показано на рисунке ниже.Ctrl + x cut operation Не работает в DataGridView

DataGridView

нужно выбрать несколько ячеек и выполнить операцию вырезания, нажав Ctrl + х на клавиатуре, но я не могу получить эту работу.

Кто-нибудь знает, как этого достичь?

+0

Вам нужно будет закодировать все это. См. [Здесь для похожих вопросов] (http://stackoverflow.com/search?q=user%3A3152130+datagridview+clipboard) – TaW

+2

Возможный дубликат [Как отправить в буфер обмена данных datagridview, таких как CTRL-C] (http: // stackoverflow.com/questions/24090196/how-to-send-to-clipboard-datagridview-content-like-ctrl-c) –

ответ

0

Что нужно сделать, когда приложение получает команду «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."; 
    } 
} 

Я вижу потенциальную проблему, которая вам может понадобиться обратиться. На вашем снимке вы выбираете только некоторые столбцы вида сетки данных. Если это представление представляет собой всю таблицу базы данных, вы можете захотеть, чтобы пользователь выбрал целую строку вместо частичной строки.

+0

, но как этот код удаляет значения из ячеек ?? –

+0

из DataGridViewElementStates.Selected, вы знаете, какие ячейки следует удалить. Прежде чем вы вносите изменения в свою БД, вы можете просто удалить эти строки из своего GridView, вы можете обновить представление и заблокировать добавление этих выбранных строк. Обратите внимание на мой комментарий, что вы должны выбрать только целую строку, а не частичную. –