ListBox 不会删除 c# 中的第一项
ListBox won't remove the first item in c#
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 次并删除第二次,就会出现错误。
试试吧。例如一些,一些,一些
尝试从其位置移除项目而不是项目本身。我发现这样做不再选择另一个项目,因为焦点已完全从列表框中移除。
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");
}
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");
尝试像这样选择下一项:
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");
}
行为:
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 次并删除第二次,就会出现错误。
试试吧。例如一些,一些,一些
尝试从其位置移除项目而不是项目本身。我发现这样做不再选择另一个项目,因为焦点已完全从列表框中移除。
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");
}
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");
尝试像这样选择下一项:
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");
}
行为: