Я хочу скопировать выделенные строки из представления моей сетки данных в буфер обмена И это отлично работает, только одно: я не успеваю удалить последние 3 пробела из строки. (я также попробовать: clipboard.Remove(clipboard.Length - 3)
и clipboard.Trim()
, но оба не работают слишком)TrimEnd не стирать последние пробелы
Моя функция:
private void menuCopyClipboard_wholeRow_Click(object sender, EventArgs e)
{
#region calculate spaces
int[] spaces = new int[8]; // I have 8 columns in the data grid view
for (int i = 0; i < 8; i++)
spaces[i] = 0;
foreach (DataGridViewRow dgvr in datagridview1.SelectedRows)
foreach (DataGridViewColumn dgvc in datagridview1.Columns)
{
int cellLength = datagridview1.Rows[dgvr.Index].Cells[dgvc.Index].FormattedValue.ToString().Length;
if (spaces[dgvc.Index] < cellLength)
spaces[dgvc.Index] = cellLength;
}
#endregion
string clipboard = "";
foreach (DataGridViewRow dgvr in datagridview1.SelectedRows)
{
foreach (DataGridViewColumn dgvc in datagridview1.Columns)
clipboard += String.Format("{0, -" + spaces[dgvc.Index] + "} ", // 3 spaces between columns
datagridview1.Rows[dgvr.Index].Cells[dgvc.Index].FormattedValue.ToString());
if (dgvr.Index != 0 && datagridview1.SelectedRows.Count > 1) clipboard += "\n"; // to not add enter after last line nor copy one line
}
clipboard.TrimEnd(); // <-- doens't erase spaces
Clipboard.SetText(clipboard);
}
Проблема: Промежутки не стирается, как вы можете видеть на картинке ниже:
(вопрос: что не так, почему пробелы не удаляются?)
'clipboard = clipboard.Trim();' –
@ AlessandroD'Andria Я пробую это. это не работает – AsfK
, но вы добавляете «\ n» в конце строки. См. В отладчике, который является значением буфера обмена перед Trim(). –