2013-04-01 2 views
3

Я пытаюсь сделать кнопку Move Up и кнопку Move Down для перемещения выбранного элемента в ListBox в Microsoft Visual Studio 2012. Я видел другие примеры в WDF, jquery, winforms и некоторые другие формы, но я еще не видел примеров из Microsoft Visual Studio.Move Up, Move Down Кнопки для ListBoxes в Visual Studio

Я пытался что-то вроде этого:

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

Но Microsoft Visual Studio не имеет свойства "AddItem" в их ListBoxes.

Для получения дополнительной информации у меня есть два списка, в которых я хочу, чтобы мои кнопки перемещения вверх и вниз работали; SelectedPlayersListBox и AvailablePlayersListBox. Кто-нибудь будет достаточно любезен, чтобы дать мне примеры кнопки «Вверх и Вниз» в Microsoft Visual Studio? Спасибо.

+0

Вы используете Winforms? –

+0

Вы немного смущены. Вы не смогли найти метод под названием «AddItem» в «System.Windows.Forms.ListBox» в «.NET Framework», который не похож на «Visual Studio». – djv

+0

Возможная публикация http://stackoverflow.com/questions/4796109/how-to-move-item-in-listbox-up-and-down –

ответ

10

Сарказм-свободный ответ. Наслаждайтесь

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; 

    } 
} 
+1

Привет (: Ты лучший. – Cindy

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

+0

Как насчет части ListIndex? – Cindy

+0

@Nefarion Я также предлагаю сбросить SelectedIndex/Item после повторного добавления elem. – Cemafor

+0

Спасибо, Нефарион. Нет ошибок, но он не перемещается Пункт: C – Cindy