C # - очереди выбора элемента списка - PullRequest
1 голос
/ 27 декабря 2011

У меня есть список и кнопка для удаления элементов из этого списка.Кнопка должна быть отключена, если у них нет выбранных элементов, но включена, когда они есть.Я пробовал другую комбинацию событий, но не могу найти ее, чтобы правильно отключить кнопку ...

Когда я отключаю кнопку, когда просмотр списка теряет фокус, я не могу удалить элемент, потому что вчтобы нажать кнопку, им нужно щелкнуть за пределами просмотра списка ..

Я надеюсь, что кто-то, кто имеет больше опыта в Visual Studio, может помочь мне найти правильную комбинацию событий просмотра списка для включения и отключения кнопки в соответствиинезависимо от того, выбран ли у них предмет.

Ответы [ 2 ]

2 голосов
/ 27 декабря 2011

Просто подпишите событие ItemSelectionChanged следующим образом (например, в конструкторе):

listView1.ItemSelectionChanged += OnListViewItemSelectionChanged;

И в методе события включите / отключите вашу кнопку следующим образом:

private void OnListViewItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
{
    button1.Enabled = (listView1.SelectedItems.Count > 0);
}
0 голосов
/ 27 декабря 2011

Я только что проверил некоторый код для этого:

    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]);
    }

И это работает отлично.

Если у вас есть какие-то проблемы, вы можете опубликовать свой код здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...