2009-12-01 48 views

回答

4

我用一个复制的菜单项。如果你想使用Ctrl + C,那么你必须实现键盘事件。这里是我的代码:

private void copyToolStripMenuItem_Click(object sender, EventArgs e) 
{ 
     foreach (Control myControl in tabControl1.SelectedTab.Controls) 
     { 
      if (myControl is DataGridView)) 
      { 
        DataGridView tempdgv = (DataGridView)myControl; 
        DataObject dataObj = tempdgv.GetClipboardContent(); 
        try 
        { 
         Clipboard.SetDataObject(dataObj, true); 
        } 
        catch (Exception ex) 
        { 
         // Do Something 
        } 
        finally 
        { 
         if (selectAllToolStripMenuItem.Checked) 
         { 
          selectAllToolStripMenuItem_Click(this, EventArgs.Empty); 
         } 

        } 
       } 
    } 
} 
+0

这段代码有什么问题? private DataObject OnCopySelectedRowsToClipboard() this.MyDataGridView.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText; //将此选择添加到剪贴板。 ( this.MyDataGridView.GetClipboardContent()); return new DataObject(Clipboard.GetText()); } – nav100 2009-12-01 15:49:23

+0

除了我不知道你为什么要返回新的DataObject(Clipboard.GetText());但它应该没有影响,我可以看到 – 2009-12-01 15:51:27

1

这将当前选中的单元格复制名为myDataGridView数据到剪贴板DataGridView的。

Clipboard.SetDataObject(myDataGridView.GetClipboardContent())