前提条件
リストビューを以下の設定で使用する。
- チェックボックスあり(CheckBoxes = true)
- FullRowSelect = true
- MultiSelect = true
困りごと
Ctrlキー または Shiftキー を押下しながらマウスで複数行を選択すると、勝手にチェックボックスがONされてしまう。
対応方法
ItemCheckイベントに以下の処理を記述します。
private void listView1_ItemCheck(object sender, ItemCheckEventArgs e)
{
// ShiftまたはCtrl押下時はチェック状態を変化させない
if ((Control.ModifierKeys & Keys.Shift) == Keys.Shift ||
(Control.ModifierKeys & Keys.Control) == Keys.Control)
{
e.NewValue = e.CurrentValue;
}
}