//可在dgv中復制、剪切、粘貼、刪除數據 /// <summary> /// DataGridView復制 /// </summary> /// <param name="dgv">DataGridView實例</param> public static void dgvCopy(DataGridView dgv) { if (dgv.GetCellCount(DataGridViewElementStates.Selected) > 0) { try { Clipboard.SetDataObject(dgv.GetClipboardContent()); } catch (Exception MyEx) { MessageBox.Show(MyEx.Message, "錯誤提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } } /// <summary> /// DataGridView剪切 /// </summary> /// <param name="dgv">DataGridView實例</param> public static void dgvCut(DataGridView dgv) { dgvCopy(dgv); try { dgvDel(dgv); } catch (Exception MyEx) { MessageBox.Show(MyEx.Message); } } ///<summary> /// DataGridView刪除內容 /// </summary> /// <param name="dgv">DataGridView實例</param> public static void dgvDel(DataGridView dgv) { try { int k = dgv.SelectedCells.Count; for (int i = 0; i < k; i++) { dgv.SelectedCells[i].Value = ""; } } catch (Exception MyEx) { MessageBox.Show(MyEx.Message); } } /// <summary> /// DataGridView粘貼 /// </summary> /// <param name="dt">DataGridView數據源</param> /// <param name="dgv">DataGridView實例</param> public static void dgvPaste(DataGridView dgv) { try { //最后一行為新行 int rowCount = dgv.Rows.Count - 1; int colCount = dgv.ColumnCount; //獲取剪貼板內容 string pasteText = Clipboard.GetText(); //判斷是否有字符存在 if (string.IsNullOrEmpty(pasteText)) return; //以換行符分割的數組 string[] lines = pasteText.Trim().Split('\n'); int txtLength = lines.Length; //Lance.2015-12-03 int cRowIndex = dgv.SelectedCells[0].RowIndex; int cColIndex = dgv.SelectedCells[0].ColumnIndex; for (int i = 0; i < txtLength; i++) { string[] words = lines[i].Split('\t'); for (int j = 0; j < words.Length; j++) { dgv.Rows[cRowIndex + i].Cells[cColIndex + j].Value = words[j]; } } } catch (Exception MyEx) { MessageBox.Show(MyEx.Message); } }
Keys key = e.KeyCode; //Delete刪除內容 if (key == Keys.Delete) { TextDaseOperationClass.dgvDel(dataGridView1); } if (e.Control!=true)//如果沒按Ctrl鍵 return; switch (key) { case Keys.C: //按下Ctrl+C復制 TextDaseOperationClass.dgvCopy(dataGridView1); break; case Keys.V: //按下Ctrl+V粘貼 TextDaseOperationClass.dgvPaste(dataGridView1); break; case Keys.X: //按下Ctrl+V剪切 TextDaseOperationClass.dgvCut(dataGridView1); break; }