常量检查是否选择了ListView

时间:2013-03-08 17:42:14

标签: c# listview

我以前做过这个,我有办法做,但我想确保它是最好的方法。我在详细信息视图中有一个ListView。我也有一个按钮。如果选择了某个项目,我只希望启用该按钮(禁用多选)。项目将被添加到此列表视图中,但是只要有选定项目,就应该启用该按钮,否则禁用该按钮。

我的事件处理程序:

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

这就是我所拥有的,只是想知道这是否会一直有效或是否有失败的怪异事件?就像我删除或添加内容或其他内容一样?

2 个答案:

答案 0 :(得分:3)

如果你展示你拥有的东西会更好 - 但简而言之,你可以从禁用的按钮开始,并且在列表视图中,如果列表视图的selectedItems.Count为1,则selectIndexChanged事件启用按钮。禁用它如果没有选择任何项目。这是一个可能有用的链接: ListView selectedindexchanged

答案 1 :(得分:2)

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();            
    }
    private void Form1_Load(object sender, EventArgs e)
    {
        for (int i = 0; i < 9; i++)
        {
            listView1.Items.Add("kashif");
        }
        button1.Enabled = false;            
    }
    private void listView1_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
    {
        button1.Enabled = listView1.SelectedItems.Count > 0;
    }
    private void button2_Click(object sender, EventArgs e)
    {
        foreach (ListViewItem v in listView1.SelectedItems)
        {
            v.Remove();
        }
    }
}

在Button2之前点击

点击Button2后

enter image description here