Как я могу инвертировать выбранные элементы в нескольких списках, используя только один цикл for? - PullRequest
3 голосов
/ 02 февраля 2011

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

Как можно кодировать это, используя только один цикл? Также может быть более 3 списков.

Ответы [ 4 ]

4 голосов
/ 02 февраля 2011

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

    /* Windows ListBox
    public void InvertSelection(ListBox objLstbox)
    {
        if(objLstbox == null) return;

        for (int i = 0; i < objLstbox.Items.Count; i++)
            objLstbox.SetSelected(i, !objLstbox.GetSelected(i));
    }
    */

    //WebApp listbox
    public void InvertSelection(ListBox objLstbox)
    {
        if (objLstbox == null) return;

        for (int i = 0; i < objLstbox.Items.Count; i++)
            objLstbox.Items[i].Selected = !objLstbox.Items[i].Selected; 
    }

    private void btnInvert_Click(object sender, EventArgs e)
    {
        InvertSelection(listBox1);
        InvertSelection(listBox2);
        InvertSelection(listBox3);
    }
0 голосов
/ 12 ноября 2013
    for (int i = 0; i < listbox.Items.Count; i++)
    {
        if (listbox.SelectedItems.Contains(listbox.Items[i]))
            listbox.SetSelected(i, false);
        else
            listbox.SetSelected(i, true);
    }
0 голосов
/ 10 июля 2011

Я ударился об этом всем остальным и, наконец, разработал собственную функцию для инвертирования. Вот ответ VB.Net:

0 голосов
/ 02 февраля 2011
public void InvertSelection(ListBox objLstbox)
{
    if (objLstbox == null) return;

    for (int i = 0; i < objLstbox.Items.Count; i++)
        objLstbox.Items[i].Selected = !objLstbox.Items[i].Selected; 
}

protected void Button1_Click(object sender, EventArgs e)
{
    InvertSelection(ListBox1);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...