我想仅在首次选择有效条件时才启用按钮(C#Windows窗体应用程序)。我有这个代码(我首先尝试了IndexChanged和ValueChanged事件,但是this answer表示要监视的ItemCheck事件:
private void checkedListBoxUnits_ItemCheck(object sender, ItemCheckEventArgs iceargs)
{
buttonGenRpts.Enabled = ValidSelections();
}
private bool ValidSelections()
{
bool OneUnitSelected = checkedListBoxUnits.CheckedItems.Count == 1;
. . .
OneUnitSelected始终为false,即使在checkedListBoxUnits控件中选择了一个项目(复选框控件)之后也是如此。似乎在实际检查复选框之前会触发这些事件。那么我可以利用什么事件来验证CheckedListBox中的项目是否已被检查?
答案 0 :(得分:1)
这有点苛刻,但您可以推迟运行ValidSelections
,直到检查完成:
private void checkedListBoxUnits_ItemCheck(object sender, ItemCheckEventArgs iceargs)
{
BeginInvoke(() => {
buttonGenRpts.Enabled = ValidSelections();
});
}