DataGridViewのMultiSelectプロパティをtrueにすると、複数のセルや列がCTRL+左クリックで選択できるようになります。
これを、左クリックのみで選択・非選択を切り替えるようにはできないでしょうか?
右クリックで切り替える方法はできたのですが、左クリックの場合、イベントの処理を行う前に勝手に選択をしてしまうので、うまく切り替えが出来ません。
もしソースコードを張っていただけれるのであれば、C#かVBでいただけたらありがたいです。
よろしくお願いします。
以下で出来ました。C# です。
選択対象のセルをフォームのメンバ変数 cellCollection として定義しておき、
CellMouseUp イベントの度に内容を更新して Select プロパティを変更しています。
Collection<DataGridViewCell> cellCollection = new Collection<DataGridViewCell>(); private void dataGridView1_CellMouseUp(object sender, DataGridViewCellMouseEventArgs e) { DataGridViewSelectedCellCollection selectedCells = dataGridView1.SelectedCells; foreach (DataGridViewCell cell in selectedCells) { if (cellCollection.Contains(cell)) { cellCollection.Remove(cell); cell.Selected = false; } else { cellCollection.Add(cell); } } foreach (DataGridViewCell cell in cellCollection) { cell.Selected = true; } }
回答ありがとうございます。
ただ、一つ残念なことが…これですと
画面が選択するたびにちらついてしまいますよね。
列選択ができればいいのですが、何か良い方法ありますでしょうか?