多个 pictureBox 和一段文字说明 如何同时复制 以便一次性发送
如图 点击button复制 ctrl+v 粘贴到微信或qq
以下方法可以实现你的需求,但是仅限于本地图片
//path1和path2为本地图片绝对路径,远程图片路径无效
var data = GetHtmlData($"<img src=\"{path1}\"/><img src=\"{path2}\"/><div>{text}</div>");
Clipboard.SetData(DataFormats.Html,data);
private static string GetHtmlData(string html) {
var sb = new StringBuilder();
const string header = @"Format:HTML Format
Version:1.0
StartHTML:<<<<<<<1
EndHTML:<<<<<<<2
StartFragment:<<<<<<<3
EndFragment:<<<<<<<4
StartSelection:<<<<<<<3
EndSelection:<<<<<<<3";
sb.Append(header);
int startHtml = sb.Length;
sb.Append(@"<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.0 Transitional//EN""><!--StartFragment-->");
int fragmentStart = sb.Length;
sb.Append(html);
int fragmentEnd = sb.Length;
sb.Append(@"<!--EndFragment-->");
int endHtml = sb.Length;
// Backpatch offsets
sb.Replace("<<<<<<<1", String.Format("{0,8}", startHtml));
sb.Replace("<<<<<<<2", String.Format("{0,8}", endHtml));
sb.Replace("<<<<<<<3", String.Format("{0,8}", fragmentStart));
sb.Replace("<<<<<<<4", String.Format("{0,8}", fragmentEnd));
MemoryStream vMemoryStream = new MemoryStream(System.Text.Encoding.GetEncoding("gb2312").GetBytes(sb.ToString()));
string str = Encoding.GetEncoding(0).GetString(vMemoryStream.ToArray());
return str;
}