我注意到许多应用程序根据目标应用程序进行不同的复制和粘贴。例如,如果我在TFS(在Web界面中)“HTML复制”一个项目:
我尝试使用具有不同Clipboard.SetText(String, TextDataFormat)
值的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;
}
}
答案 0 :(得分:0)
我想你可能只需要以下内容:
var dataObject = new DataObject(textContent); // allows data to auto-convert on paste
Clipboard.SetDataObject(dataObject);