禁用后按钮不启用

时间:2017-09-04 13:31:07

标签: c# winforms list controls

我有一个包含人名的项目列表。我已经做到了这一点,一旦到达列表的末尾,按钮就会被禁用,这样就可以清楚地看到没有剩下的项目了。问题是当我回到上一个项目时,即使我重新启用它,该按钮仍然处于禁用状态......

所以我有禁用/启用按钮的方法,并且在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();      
}

2 个答案:

答案 0 :(得分:1)

当您必须检查禁用rdd1 = sc.parallelize([1, 2, 3, 4, 5]) rdd1.foreachPartition(f) 按钮时?在btnNext 所选项目已更改。当且仅当选择了最后一项时,才应禁用birthday

假设btnNextbirthdayListBoxSelectionMode,您可以这样说:

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; } 选择发生更改(无论出于何种原因,btnNextbtnPrevious来电,直接选择等),您都会同时更新birthdayStepToPreviousPerson

答案 1 :(得分:0)

好的,我根据@Eli的评论得到了它。我必须将'BtnPrevious'事件处理程序中的DisableButton()函数调用以及我已经拥有的'Next'按钮事件处理程序。我从一开始就错过了非常简单的事情。

感谢所有帮助过的人。