4

我正在尝试制作一个上移按钮和一个下移按钮,以在 Microsoft Visual Studio 2012 的 ListBox 中移动所选项目。我在 WDF、jquery、winforms 和其他一些表单中看到了其他示例,但我没有还没有看到 Microsoft Visual Studio 中的示例。

我尝试过这样的事情:

        listBox1.AddItem(listBox1.Text, listBox1.ListIndex - 1);

但是 Microsoft Visual Studio 在其 ListBoxes 中没有“AddItem”属性。

有关更多信息,我有两个列表框,我想让我的向上和向下移动按钮使用;SelectedPlayersListBox 和 AvailablePlayersListBox。有人会好心给我 Microsoft Visual Studio 中“上移”和“下移”按钮的示例吗?谢谢你。

4

2 回答 2

13

无讽刺的回答。享受

private void btnUp_Click(object sender, EventArgs e)
{
    MoveUp(ListBox1);
}

private void btnDown_Click(object sender, EventArgs e)
{
    MoveDown(ListBox1);
}

void MoveUp(ListBox myListBox)
{
    int selectedIndex = myListBox.SelectedIndex;
    if (selectedIndex > 0)
    {
        myListBox.Items.Insert(selectedIndex - 1, myListBox.Items[selectedIndex]);
        myListBox.Items.RemoveAt(selectedIndex + 1);
        myListBox.SelectedIndex = selectedIndex - 1;
    }
}

void MoveDown(ListBox myListBox)
{
    int selectedIndex = myListBox.SelectedIndex;
    if (selectedIndex < myListBox.Items.Count - 1 & selectedIndex != -1)
    {
        myListBox.Items.Insert(selectedIndex + 2, myListBox.Items[selectedIndex]);
        myListBox.Items.RemoveAt(selectedIndex);
        myListBox.SelectedIndex = selectedIndex + 1;

    }
}
于 2013-04-02T15:08:24.823 回答
2

你正在寻找ListBox.Items.Add()

对于向上移动,这样的事情应该起作用:

void MoveUp()
{
    if (listBox1.SelectedItem == null)
        return;

    var idx = listBox1.SelectedIndex;
    var elem = listBox1.SelectedItem;
    listBox1.Items.RemoveAt(idx);
    listBox1.Items.Insert(idx - 1, elem);
}

向下移动,只需更改idx - 1idx + 1

于 2013-04-01T18:14:09.217 回答