- DataGridViewで行選択モード
- ユーザーがCtrl+Cでコピー処理
- 目的とする列の値だけを取りたい
デフォルトの設定では、選択した行の値すべてをコピーしてしまう。
DataGridViewに、DataGridViewClipboardCopyMode.Disable に設定した上で、Enterイベントでコピー処理を施す。
private void KeyDownForCopy (object sender, KeyEventArgs e)
{
// Ctrl+C のみ受付
if (!(e.KeyData == (Keys.Control | Keys.C)))
return;
// 選択行がなければ処理しない
var dgv = sender as DataGridView;
if (dgv.SelectedRows.Count == 0)
return;
// 取得したい列
int targetcolumn = 0;
// 選択行取得
var value = dgv.SelectedRows[0].Cells[targetcolumn].Value.ToString();
// クリップボードに設定
Clipboard.SetText(value);
}
