protected override object GetClipboardContent(int rowIndex, bool firstCell, bool lastCell, bool inFirstRow, bool inLastRow, string format) { if (base.DataGridView == null) { return(null); } if ((rowIndex < 0) || (rowIndex >= base.DataGridView.Rows.Count)) { throw new ArgumentOutOfRangeException("rowIndex"); } object obj2 = this.GetValue(rowIndex); StringBuilder sb = new StringBuilder(0x40); if (string.Equals(format, DataFormats.Html, StringComparison.OrdinalIgnoreCase)) { if (inFirstRow) { sb.Append("<TABLE>"); } sb.Append("<TR>"); sb.Append("<TD ALIGN=\"center\">"); if (obj2 != null) { sb.Append("<B>"); DataGridViewCell.FormatPlainTextAsHtml(obj2.ToString(), new StringWriter(sb, CultureInfo.CurrentCulture)); sb.Append("</B>"); } else { sb.Append(" "); } sb.Append("</TD>"); if (lastCell) { sb.Append("</TR>"); if (inLastRow) { sb.Append("</TABLE>"); } } return(sb.ToString()); } bool csv = string.Equals(format, DataFormats.CommaSeparatedValue, StringComparison.OrdinalIgnoreCase); if ((!csv && !string.Equals(format, DataFormats.Text, StringComparison.OrdinalIgnoreCase)) && !string.Equals(format, DataFormats.UnicodeText, StringComparison.OrdinalIgnoreCase)) { return(null); } if (obj2 != null) { bool escapeApplied = false; int length = sb.Length; DataGridViewCell.FormatPlainText(obj2.ToString(), csv, new StringWriter(sb, CultureInfo.CurrentCulture), ref escapeApplied); if (escapeApplied) { sb.Insert(length, '"'); } } if (lastCell) { if (!inLastRow) { sb.Append('\r'); sb.Append('\n'); } } else { sb.Append(csv ? ',' : '\t'); } return(sb.ToString()); }