我正在尝试制作一个上移按钮和一个下移按钮,以移动Microsoft Visual Studio 2012中ListBox中的选定项目。我在WDF,jquery,winforms和其他一些表单中看到过其他示例但是我还没有看过Microsoft Visual Studio的示例。
我尝试过这样的事情:
listBox1.AddItem(listBox1.Text, listBox1.ListIndex - 1);
但Microsoft Visual Studio在其ListBox中没有“AddItem”属性。
有关更多信息,我有两个列表框,我想让我的上下移动按钮工作; SelectedPlayersListBox和AvailablePlayersListBox。有人会非常友好地向我提供Microsoft Visual Studio中“上移”和“下移”按钮的示例吗?谢谢。
答案 0 :(得分:11)
无讽刺的答案。享受
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 :(得分: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