【问题标题】:.NET DataGrid Copy/Paste.NET DataGrid 复制/粘贴
【发布时间】:2010-02-12 23:46:31
【问题描述】:

我在 C# 项目中有一个数据网格。 我想做的是从数据网格中复制数据,然后粘贴到文件中。然后编辑内容并从剪贴板插入回数据网格。

我可以将数据从数据网格复制到剪贴板,但我不能将剪贴板中的文本插入/替换到数据网格。

如何将剪贴板中的数据插入数据网格?

从数据网格复制并粘贴到文件中的示例数据:

>  0 base_hair00 Egyptian 0 2 2 2 2 1 _S_Hair000_Front_L _C_elf-f-hair000 0 Hair000_Bottom_S _C_elf-f-hair000 0 Hair000_Top_S _C_elf-f-hair000 0 - - 0 - - 0 - -

我试图在最后插入数据网格

>  0 base_hair02 Egyptian2 0 2 2 2 2 1 _S_Hair000_Front_L _C_elf-f-hair000 0 Hair000_Bottom_S _C_elf-f-hair000 0 Hair000_Top_S _C_elf-f-hair000 0 - - 0 - - 0 - -

【问题讨论】:

  • 您是指 System.Web.UI.WebControls 还是 System.Windows.Forms 中的数据网格
  • 你能再描述一下你的问题吗?通常将数据输入数据网格是否存在问题?或者只是剪贴板部分的问题。
  • 我正在上传演示视频来展示。请等待几分钟
  • 我上传了演示视频,展示了我的应用程序中我想要什么和问题youtube.com/watch?v=tgbd5qnZjr0
  • 顺便说一句,没有 C# DataGrid 你的意思是 .NET Windows 窗体 DataGrid

标签: c# .net datagrid insert clipboard


【解决方案1】:

添加“粘贴”功能或处理 KeyDown 事件以侦听粘贴操作,如下所示:

    void datagrid_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
    {
        if (e.KeyCode == System.Windows.Forms.Keys.V && e.Control)
        {
            string data = Clipboard.GetData(DataFormats.Text).ToString();
            string[] cells = data.Split('\t');
            for (int i = 0; i < cells.Length; i++)
                datagrid[datagrid.CurrentRowIndex, i] = cells[i];
        }
    }

【讨论】:

  • 这只有在用户在编辑单元格时粘贴某些内容时才有效。 IE。当单元格突出显示但未处于 编辑 模式时。
【解决方案2】:

我花了一些时间挖掘并找到了您的问题的解决方案,请看Global Copy And Paste Option In DataGridView,在帖子底部附近有一个代码链接 (second last one)。

【讨论】:

    猜你喜欢
    • 2010-09-23
    • 2011-02-08
    • 2010-12-20
    • 1970-01-01
    • 1970-01-01
    • 2011-10-19
    • 2012-09-27
    • 1970-01-01
    • 2012-08-31
    相关资源
    最近更新 更多