3
默認情況下,雙擊ListViewItem切換其Checked狀態。我只希望通過單擊項目的複選框或在項目突出顯示時按空格鍵來更改選中狀態。這很容易做到嗎?如果單擊複選框,只更改ListViewItem的選中狀態
默認情況下,雙擊ListViewItem切換其Checked狀態。我只希望通過單擊項目的複選框或在項目突出顯示時按空格鍵來更改選中狀態。這很容易做到嗎?如果單擊複選框,只更改ListViewItem的選中狀態
該解決方案包括3個事件和bool類型的一個狀態變量:
private bool inhibitAutoCheck;
private void listView1_MouseDown(object sender, MouseEventArgs e) {
inhibitAutoCheck = true;
}
private void listView1_MouseUp(object sender, MouseEventArgs e) {
inhibitAutoCheck = false;
}
private void listView1_ItemCheck(object sender, ItemCheckEventArgs e) {
if (inhibitAutoCheck)
e.NewValue = e.CurrentValue;
}
項檢查能夠避免過渡到另一個檢查狀態(ItemChecked事件之前調用)。解決方案簡單而可靠。
要找到它我做了一個小測試與不同的事件:
當點擊:
當雙擊: