ListView控件有一个ItemCheck被触发的事件之前,该项目的变化,以及ItemChecked被解雇事件后的项目变更.有关详细信息,请参阅此SO问题.
CheckedListBox控件只有ItemCheck事件.
使用CheckedListBox执行此类操作的最佳方法是什么?
private void checkedListBox_ItemChecked(object sender ItemCheckedEventArgs e)
{
okButton.Enabled = (checkedListBox.CheckedItems.Count > 0);
}
Run Code Online (Sandbox Code Playgroud)
补充问题:为什么没有CheckedListBox.ItemChecked事件?
Han*_*ant 52
处理引发时无法处理的事件的一个很好的技巧是延迟处理.您可以使用Control.BeginInvoke()方法执行此操作,只要调度所有事件,副作用完成并且UI线程再次空闲,它就会运行.通常对TreeView有帮助,另一个胡思乱想的控件.
private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e) {
this.BeginInvoke((MethodInvoker)delegate {
okButton.Enabled = checkedListBox1.CheckedItems.Count > 0;
});
}
Run Code Online (Sandbox Code Playgroud)
以防万一:这与线程无关,而且技巧相当便宜.
为什么没有ItemChecked事件?不太确定.CheckedListBox只是一个非常好的控件.绝对不是原始Winforms团队中的一位大师所做的.
| 归档时间: |
|
| 查看次数: |
11255 次 |
| 最近记录: |