/// <summary> /// 通过剪贴板复制DataGridView控件中所选中的内容. /// </summary> /// <param DGView="DataGridView">DataGridView类</param> /// <return>字符串</return> public string CopyDataGridView(DataGridView DGView) { string tem_str = ""; if (DGView.GetCellCount(DataGridViewElementStates.Selected) > 0) { try { //将数据添加到剪贴板中 Clipboard.SetDataObject(DGView.GetClipboardContent()); //从剪贴板中获取信息 tem_str = Clipboard.GetText(); } catch (System.Runtime.InteropServices.ExternalException) { return ""; } } return tem_str; }
private void CopyData(ref DataGridView dgv) { if (dgv.GetCellCount(DataGridViewElementStates.Selected) > 0) { try { // Add the selection to the clipboard. Clipboard.SetDataObject(dgv.GetClipboardContent()); } catch (System.Runtime.InteropServices.ExternalException) { MessageBox.Show("The Clipboard could not be accessed. Please try again.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }
private static int[] ColumnsSelected(DataGridView dataGridView1) { int counts = 0; int UseToIdentify = 0; int countforNew = 0; int selectedCellCount = dataGridView1.GetCellCount(DataGridViewElementStates.Selected); if (selectedCellCount > 0) { int[] ColumnsChosen = new int[selectedCellCount]; for (int i = 0; i < selectedCellCount; i++) { ColumnsChosen[i] = -100; } if (dataGridView1.AreAllCellsSelected(true)) { for (int i = 0; i < dataGridView1.Columns.Count; i++) { counts = 0; foreach (int EachCol in ColumnsChosen) { if (EachCol == i) { counts++; break; } } if (counts == 0) { ColumnsChosen[i] = i; } else { ColumnsChosen[i] = -100; } } } else { for (int i = 0; i < selectedCellCount; i++) { UseToIdentify = dataGridView1.SelectedCells[i].ColumnIndex; counts = 0; foreach (int EachCol in ColumnsChosen) { if (EachCol == UseToIdentify) { counts++; break; } } if (counts == 0) { ColumnsChosen[countforNew] = UseToIdentify; countforNew++; } else { ColumnsChosen[countforNew] = -100; countforNew++; } } } return ColumnsChosen; } return new int[] { -1, -1, -1, -1 }; }
public static string GetGridCols(DataGridView dataGridView1){ int selectedCellCount = dataGridView1.GetCellCount(DataGridViewElementStates.Selected); int[] ColumnsChosen = new int[selectedCellCount]; //声明数组,长度为选中的单元格数量 ColumnsChosen = ColumnsSelected(dataGridView1); //单元格的列数不可能超过单元格数量 string AllSelectedCol = ""; int Record_Zero = 0; //对列数做记录 if (ColumnsChosen != new int[] { -1, -1, -1, -1 }) { Array.Sort(ColumnsChosen); //对列数进行排序 for (int i = 0; i < selectedCellCount; i++) { if (ColumnsChosen[i] >= 0) { Record_Zero = i; //如果发现大于0的列数,则跳出循环 //之所以这样操作,原因在于,有可能一些数组中元素因空缺被赋值为-1 //所以要记录从何时开始为0,即第一列 break; } } for (int i = Record_Zero; i < selectedCellCount; i++) { if (i == Record_Zero) { AllSelectedCol = (ColumnsChosen[i] + 1).ToString(); } else { AllSelectedCol = AllSelectedCol + "," + (ColumnsChosen[i] + 1).ToString(); } } } return AllSelectedCol; }
private void CopyActiveGridCellToClipboard(DataGridView visibleDataGridView) { if (visibleDataGridView.GetCellCount(DataGridViewElementStates.Selected) > 0) { Clipboard.SetDataObject(visibleDataGridView.GetClipboardContent()); } }
private static void CopiarEmDataGrid(DataGridView dtgGrid) { if ((dtgGrid.GetCellCount(DataGridViewElementStates.Selected) <= 0)|| (dtgGrid.GetClipboardContent()==null)) return; try { Clipboard.SetDataObject(dtgGrid.GetClipboardContent()); } catch { return;} DataGridViewSelectedCellCollection celulas = dtgGrid.SelectedCells; foreach (DataGridViewCell cel in celulas) { cel.Style.SelectionBackColor = System.Drawing.Color.Coral; } }