2

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

我的事件处理程序:

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

这就是我所拥有的,只是想知道这是否会一直有效,或者是否会出现失败的异常事件?就像我删除或添加东西或其他任何东西一样?

4

2 回答 2

3

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

于 2013-03-08T17:48:27.517 回答
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();
        }
    }
}

Before Button2 Click

After Button2 click

enter image description here

于 2013-03-08T18:06:41.097 回答