C# - Listview项目选择队列

时间:2011-12-27 07:58:16

标签: c# winforms visual-studio listview

我有一个列表视图和一个用于从该列表视图中删除项目的按钮。当没有选择任何项目时,需要禁用该按钮,但是当它们执行时启用。我尝试了不同的事件组合,但找不到一个正确禁用按钮......

当listview失去焦点时禁用按钮时,我无法删除该项目,因为要点击该按钮,他们需要在列表视图外点击..

我希望在Visual Studio中有更多经验的人可以帮助我找到listview事件的正确组合,以根据他们是否选择了某个项来启用和禁用该按钮。

2 个答案:

答案 0 :(得分:2)

只需订阅此事件ItemSelectionChanged(例如在构造函数中):

listView1.ItemSelectionChanged += OnListViewItemSelectionChanged;

在事件方法中启用/禁用您的按钮:

private void OnListViewItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
{
    button1.Enabled = (listView1.SelectedItems.Count > 0);
}

答案 1 :(得分:0)

我刚刚测试了一些代码来执行此操作:

    private void Form1_Load(object sender, EventArgs e)
    {
        //Added some dummy items
        for(int i=0; i<10; i++)
            listView1.Items.Add("Item"+i.ToString());
        //Disable the button
        button1.Enabled = false;

    }

    private void listView1_SelectedIndexChanged(object sender, EventArgs e)
    {
        button1.Enabled = (listView1.SelectedItems.Count > 0);
    }

    private void button1_Click(object sender, EventArgs e)
    {
        listView1.Items.Remove(listView1.SelectedItems[0]);
    }

这完全正常。

如果您遇到问题,可以在此处发布您的代码。