0

項目をあるリスト ボックスから別のリスト ボックスに移動できるが、項目を元のリスト ボックスに戻すことができないという奇妙な問題が発生しています。これが私のコードです:

private void MoveListBoxItems(ListBox from, ListBox to)
{
    for(int i = 0; i < first_listbox.Items.Count; i++)
    {
        if (first_listbox.Items[i].Selected)
        {
            to.Items.Add(from.SelectedItem);
            from.Items.Remove(from.SelectedItem);
        }   
    }
    from.SelectedIndex = -1;
    to.SelectedIndex = -1;
}

protected void Button2_Click(object sender, EventArgs e)
{
    MoveListBoxItems(first_listbox, second_listbox);
}

protected void Button1_Click(object sender, EventArgs e)
{
    MoveListBoxItems(second_listbox, first_listbox); 
}

button2 イベントは正常に機能しますが、button1 イベントは機能しません。リスト ボックスはデータ バインドされていないため、手動で項目を追加しました。

たぶん、私がここで見逃している非常に明白な何かがありますか?

事前にご協力いただきありがとうございます。

4

2 に答える 2

1

これを次のように変更します。

private void MoveListBoxItems(ListBox from, ListBox to)
{
    for(int i = 0; i < from.Items.Count; i++)
    {
        if (from.Items[i].Selected)
        {
            to.Items.Add(from.SelectedItem);
            from.Items.Remove(from.SelectedItem);

            // should probably be this:
            to.Items.Add(from.Items[i]);
            from.Items.Remove(from.Items[i]);
        }   
    }
    from.SelectedIndex = -1;
    to.SelectedIndex = -1;
}

元の方法はfirst_listbox、の代わりにこれらの 2 つの場所で使用していましたfrom。また、複数のアイテムが選択されていると、コードが機能しないと思います。

于 2012-07-02T20:32:56.443 に答える