예제 #1
0
파일: Frm_Main.cs 프로젝트: TGHGH/C-1200
 /// <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;
 }
예제 #2
0
 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);
         }
     }
 }
예제 #3
0
        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 };
        }
예제 #4
0
        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;
        }
예제 #5
0
 private void CopyActiveGridCellToClipboard(DataGridView visibleDataGridView)
 {
     if (visibleDataGridView.GetCellCount(DataGridViewElementStates.Selected) > 0)
     {
         Clipboard.SetDataObject(visibleDataGridView.GetClipboardContent());
     }
 }
예제 #6
0
        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;
            }
        }