c# – 根据目标自定义复制粘贴的内容

c# – 根据目标自定义复制粘贴的内容,第1张

概述参见英文答案 > How to set HTML to clipboard in C#?                                    4个 我注意到许多应用程序根据目标应用程序进行不同的复制粘贴.例如,如果我在TFS中(在Web界面中)“HTML复制”一个项目: >如果我将它粘贴在记事本中,我会得到类似csv的输出 >如果我将其粘贴到Excel中,我会获得格式良好的行和 参见英文答案 > How to set HTML to clipboard in C#?                                    4个
我注意到许多应用程序根据目标应用程序进行不同的复制和粘贴.例如,如果我在TFS中(在Web界面中)“HTML复制”一个项目:

>如果我将它粘贴在记事本中,我会得到类似csv的输出
>如果我将其粘贴到Excel中,我会获得格式良好的行和列
>如果我将其粘贴到Outlook中,我会看到一张漂亮的桌子

我试图使用具有不同TextDataFormat值的Clipboard.SetText(String,TextDataFormat)的多个实例,但是,它们互相覆盖(除了TextDataFormat.Text之外的任何东西似乎都不允许“粘贴”).

到目前为止我尝试了什么:

private static voID Keypressed(KeyEventArgs e,GrIDVIEw grID){    if (e.Control && e.KeyCode == Keys.C)    {        var textContent = new StringBuilder();        var HTMLContent = new StringBuilder("<table>");        // build content        for (int i = 0; i < 10; i++)        {            HTMLContent.AppendFormat("<tr><td>{0}</td></tr>",i);            textContent.AppendFormat("{0}\t",i);        }        textContent.Length--; // remove last tab        HTMLContent.Append("</table>");        // send contents to clipboard        Clipboard.Clear();        Clipboard.SetText(textContent.ToString(),TextDataFormat.CommaSeparatedValue);        Clipboard.SetText(textContent.ToString(),TextDataFormat.Text);        Clipboard.SetText(HTMLContent.ToString(),TextDataFormat.HTML);        e.Handled = true;        e.SuppressKeyPress = true;    }}
解决方法 我想你可能只需要以下内容:

var dataObject = new DataObject(textContent); // allows data to auto-convert on pasteClipboard.SetDataObject(dataObject);
总结

以上是内存溢出为你收集整理的c# – 根据目标自定义复制/粘贴的内容全部内容,希望文章能够帮你解决c# – 根据目标自定义复制/粘贴的内容所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1226843.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-05
下一篇2022-06-05

发表评论

登录后才能评论

评论列表(0条)

    保存