private void button_Click(object sender, RoutedEventArgs e) //ADD
{
listBox.Items.Add("some");
listBox.Items.Add("text");
}
private void button1_Click(object sender, RoutedEventArgs e) //DELETE
{
if (!(listBox.SelectedIndex == -1))
listBox.Items.Remove(listBox.SelectedItem);
else
System.Windows.MessageBox.Show("You have not selected an item");
}
ListBox
有时不会删除第一个项目。原因是我删除项目后,前一项目上出现白色边框。我不知道为什么会出现这个边界。见图片,看看我的意思。当出现白色边框并且我尝试删除第一个项目时,它表示我没有选择项目。 如果我将同一项目保存3次并删除第二项,则会出现错误。
试一试。例如一些,一些,一些
答案 0 :(得分:1)
尝试从其位置而不是项目本身中删除该项目。我发现不再选择其他项目,因为焦点已从列表框中完全删除。
private void button1_Click(object sender, RoutedEventArgs e)
{
if (listBox.SelectedIndex != -1)
listBox.Items.RemoveAt(listBox.SelectedIndex);
else
System.Windows.MessageBox.Show("You have not selected an item");
}
答案 1 :(得分:0)
button1_click
事件中的代码应该是这样的
var index = listBox.SelectedIndex;
if (index != -1)
{
// remove item
listBox.Items.RemoveAt(index);
// select a new item
if (listBox.Items.Count > index)
listBox.SelectedIndex = index;
else
listBox.SelectedIndex = index - 1;
}
else
System.Windows.MessageBox.Show("You have not selected an item");
答案 2 :(得分:0)
尝试选择下一项:
private void button2_Click(object sender, EventArgs e)
{
if (!(listBox1.SelectedIndex == -1))
{
int index = listBox1.SelectedIndex;
listBox1.Items.Remove(listBox1.SelectedItem);
if (index > 0)
listBox1.SetSelected(index - 1,true);
else if(listBox1.Items.Count > 0)
listBox1.SetSelected(0, true);
}
else
MessageBox.Show("You have not selected an item");
}