4

Microsoft Visual Studio 2012 の ListBox で選択した項目を移動するために、上へ移動ボタンと下へ移動ボタンを作成しようとしています。WDF、jquery、winforms、およびその他のフォームで他の例を見てきましたが、 Microsoft Visual Studio の例はまだ見られません。

私はこのようなことを試しました:

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

しかし、Microsoft Visual Studio には、ListBoxes に "AddItem" プロパティがありませんでした。

詳細については、Move Up ボタンと Move Down ボタンを連携させたい 2 つのリストボックスがあります。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 - 1するだけですidx + 1

于 2013-04-01T18:14:09.217 に答える