C# 如果选择了列表框中的项目,如何启用按钮

C# 如果选择了列表框中的项目,如何启用按钮,c#,listbox,C#,Listbox,我试过了,但没用。即使我选择了一些东西,它们仍然是灰色的 btnVoirFiche.Enabled = false; btnEchangerJoueur.Enabled = false; if (lstJoueurs.SelectedIndex != -1) { btnVoirFiche.Enabled = true; btnEchangerJoueur.Enabled = true; } else

我试过了,但没用。即使我选择了一些东西,它们仍然是灰色的

btnVoirFiche.Enabled = false;
btnEchangerJoueur.Enabled = false;
if (lstJoueurs.SelectedIndex != -1)
        {
            btnVoirFiche.Enabled = true;
            btnEchangerJoueur.Enabled = true;
        }
        else
        {
        }

您需要处理ListBox.SelectedIndexChanged事件,并在处理程序中检查特定值是否为所选值,然后相应地设置按钮的enable属性

大概是这样的:

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    if(listBox1.SelectedIndex != -1)
    {
        btnVoirFiche.Enabled = true;
        btnEchangerJoueur.Enabled = true;
    }
    else
    {
       //whatever you need to test for
    }
}
干杯


编辑:我不太确定button的enabled属性的逻辑是什么,所以我的答案很一般。如果您向问题添加详细信息,我将相应地进行调整。

您将希望处理ListBox.SelectedIndexChanged事件,并在处理程序中检查特定值是否为所选值,然后相应地设置按钮的enable属性

大概是这样的:

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    if(listBox1.SelectedIndex != -1)
    {
        btnVoirFiche.Enabled = true;
        btnEchangerJoueur.Enabled = true;
    }
    else
    {
       //whatever you need to test for
    }
}
干杯


编辑:我不太确定button的enabled属性的逻辑是什么,所以我的答案很一般。如果您向您的问题添加了详细信息,我将相应地进行调整。

钩住SelectedIndexChanged事件并将代码放入其中

private void lstJoueurs_SelectedIndexChanged(object sender, EventArgs e)
{
    if (lstJoueurs.SelectedIndex != -1)
    {
        btnVoirFiche.Enabled = true;
        btnEchangerJoueur.Enabled = true;
    }
 }

钩住SelectedIndexChanged事件并将代码放入其中

private void lstJoueurs_SelectedIndexChanged(object sender, EventArgs e)
{
    if (lstJoueurs.SelectedIndex != -1)
    {
        btnVoirFiche.Enabled = true;
        btnEchangerJoueur.Enabled = true;
    }
 }

作为替代方案,使用Lucmorin先生的答案,您可以使用列表框的
SelectedItem
,如果未选择任何内容,它将返回
null

作为替代方案,使用Lucmorin先生的答案,您可以使用列表框的
SelectedItem
,如果未选择任何内容,它将返回
null

到以下位置:private void frmPoolHockeyLNH\u Load(对象发送方,事件参数e){listbox的SelectedIndexChanged事件是否指向该方法?如何确定?可能是因为我从同一方法加载了元素。打开设计器后,选择listbox,打开属性窗口。顶部附近将显示一个图标(在VS 2012中,它是一个闪电)单击时显示事件。然后向下滚动到
SelectedIndexChanged
。进入以下位置:private void frmPoolHockeyLNH\u Load(对象发送方,事件参数e){listbox的SelectedIndexChanged事件是否指向该方法?如何确定?可能是因为我从同一方法加载了元素。打开设计器后,选择listbox,打开属性窗口。顶部附近将显示一个图标(在VS 2012中,它是一个闪电)单击时显示事件。然后向下滚动到
SelectedIndexChanged
。感谢这是完美的,您还知道如何使用另一个命令(选中时)显示隐藏元素吗?例如:如何使btnVoirFiche.Hide-appeage.btnVoirFiche.Visible=true;感谢这是完美的,您还知道如何使用另一个命令(选中时)使隐藏元素显示吗?例如:如何使btnVoirFiche.Hide-appeage.btnVoirFiche.Visible=true;