【问题标题】:How to ignore a checkbox change in listview?如何忽略列表视图中的复选框更改?
【发布时间】:2010-10-28 16:52:10
【问题描述】:
我有一个带有属性 checkbox = true 的列表视图。
当用户点击复选框并更改其状态(选中 -> 未选中或未选中 -> 选中)时,我会捕获 ItemCheck 事件并执行一些数据库实现。
我想在使用数据库之前要求用户确认。
当我用户取消它的命令时,我希望复选框恢复到它的状态。
如何让列表视图忽略复选框的状态变化?
谢谢,
马坦
【问题讨论】:
标签:
c#
.net
winforms
visual-studio-2008
user-interface
【解决方案1】:
在ItemCheck 事件中,将NewValue 设置为CurrentValue:
private void listView1_ItemCheck(object sender, ItemCheckEventArgs e)
{
if (MessageBox.Show(this, "Change?", "Test", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.No)
e.NewValue = e.CurrentValue;
}
【解决方案3】:
我使用了 OnChecked 事件而不是 OnCheck。
要取消,我只需将值设置为 !value。