選択した行をデータ グリッド ビューからクリップボードにコピーしたいのですが、完璧に機能します。文字列から最後の 3 つのスペースを削除できません。(私も試してみます: clipboard.Remove(clipboard.Length - 3)
and clipboard.Trim()
、両方とも機能しません)
私の機能:
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);
}
問題: 下の図でわかるように、スペースが消去されていません。
(質問: 何が問題なのですか? なぜスペースが消去されないのですか?)