GridView整行一條或者多行復制到剪貼板
private void menu_CopyInfo_Click(object sender, EventArgs e) { int[] selectedRow = this.gridView1.GetSelectedRows(); if (selectedRow == null || selectedRow.Length == 0) return; StringBuilder sbHeader = new StringBuilder(); StringBuilder sb = new StringBuilder(); if (selectedRow.Length == 1) { //單行復制的時候 foreach (GridColumn gridCol in this.gridView1.Columns) { if (gridCol.Visible) { sbHeader.AppendFormat("{0}:{1} \r\n", gridCol.Caption, this.gridView1.GetRowCellDisplayText(selectedRow[0], gridCol.FieldName)); } } sb.AppendLine(); } else { //多行復制的時候 foreach (GridColumn gridCol in this.gridView1.Columns) { if (gridCol.Visible) { sbHeader.AppendFormat("{0}\t", gridCol.Caption); } } foreach (int row in selectedRow) { foreach (GridColumn gridCol in this.gridView1.Columns) { if (gridCol.Visible) { sb.AppendFormat("{0}\t", this.gridView1.GetRowCellDisplayText(row, gridCol.FieldName)); } } sb.AppendLine(); } } Clipboard.SetText(sbHeader.ToString() + "\r\n" + sb.ToString()); }
GridView 單個單元格復制
private void menu_CellCopyInfo_Click(object sender, EventArgs e) { string rowCellmsg = string.Empty; GridViewInfo info = gridView1.GetViewInfo() as GridViewInfo; GridCellInfo cellInfo = info.GetGridCellInfo(gridView1.FocusedRowHandle, gridView1.FocusedColumn); if (cellInfo == null) return; if (cellInfo.CellValue == null) Clipboard.Clear(); //可能會產生null拋出異常,故需要清空剪貼板信息 else rowCellmsg = cellInfo.CellValue.ToString(); if (string.IsNullOrEmpty(rowCellmsg)) //單元格內容為空的時候,不能復制為空消息,故需要清空剪貼板的信息 { Clipboard.Clear(); } else { Clipboard.SetText(rowCellmsg); } }
