winform DevExpress GridView復制單元格方法


 

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);
            }
        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM