我有一个包含人名的项目列表。我已经做到了这一点,一旦到达列表的末尾,按钮就会被禁用,这样就可以清楚地看到没有剩下的项目了。问题是当我回到上一个项目时,即使我重新启用它,该按钮仍然处于禁用状态......
所以我有禁用/启用按钮的方法,并且在button_click事件处理程序中调用了这个方法:
public void DisableButton()
{
if(birthdays.IsThereAnotherItem())
{
btnNext.Enabled = true;
}
else if (!birthdays.IsThereAnotherItem())
{
btnNext.Enabled = false;
}
}
我还激活了button_EnabledChanged事件处理程序。
我回到上一个项目......
private void btnPrevious_Click(object sender, EventArgs e)
{
birthdays.StepToPreviousPerson();
DisplayPeople();
}
答案 0 :(得分:1)
当您必须检查禁用rdd1 = sc.parallelize([1, 2, 3, 4, 5])
rdd1.foreachPartition(f)
按钮时?在btnNext
所选项目已更改。当且仅当选择了最后一项时,才应禁用birthday
。
假设btnNext
是birthday
且ListBox
是SelectionMode
,您可以这样说:
SelectionMode.One
因此,只要 private void birthday_SelectedIndexChanged(object sender, EventArgs e) {
// Previous is Enabled if and only if the selected item is not first one
btnPrevious.Enabled = birthday.SelectedIndex > 0;
// btnNext is enabled if and only if
// 1. birthday has items (not empty)
// 2. An item selected
// 3. The item is not the last one
btnNext.Enabled = birthday.SelectedIndex >= 0 && // an item selected
birthday.SelectedIndex < birthday.Items.Count - 1;
}
选择发生更改(无论出于何种原因,btnNext
,btnPrevious
来电,直接选择等),您都会同时更新birthday
和StepToPreviousPerson
。
答案 1 :(得分:0)
好的,我根据@Eli的评论得到了它。我必须将'BtnPrevious'事件处理程序中的DisableButton()函数调用以及我已经拥有的'Next'按钮事件处理程序。我从一开始就错过了非常简单的事情。
感谢所有帮助过的人。