【发布时间】:2012-05-04 20:06:26
【问题描述】:
有谁知道取消 CheckedListBox 上的 ItemCheck 事件的可靠方法吗?我的情况是 ItemCheck 事件基本上应该丢弃表单上的更改,但是,如果该人决定取消丢弃,我希望 ItemCheck 事件不要触发,以免更改任何内容。
【问题讨论】:
有谁知道取消 CheckedListBox 上的 ItemCheck 事件的可靠方法吗?我的情况是 ItemCheck 事件基本上应该丢弃表单上的更改,但是,如果该人决定取消丢弃,我希望 ItemCheck 事件不要触发,以免更改任何内容。
【问题讨论】:
使用 ItemCheck 事件很容易做到。只需将值设置回来。像这样:
private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e) {
if (someCondition) e.NewValue = e.CurrentValue;
else {
// Regular stuff
//...
}
}
【讨论】:
public void cancelevent()
{
checkedListBox1.ItemCheck -= new ItemCheckEventHandler(this.checkedListBox1_ItemCheck);
}
在任何地方调用此方法以取消事件。
如果我们 += 将创建事件,而 -= 将删除事件。
如果您需要更多详细信息,请提及。 :)
【讨论】: