listbox里面项的删除方法
如图我的删除代码intindex=ListBox1.SelectedIndex;intindex=ListBox1.SelectedIndex;if(index<0){R...
如图我的删除代码
int index = ListBox1.SelectedIndex;
int index = ListBox1.SelectedIndex;
if (index < 0)
{
Response.Write("<script>alert('请选中要删除的项 ')</script>");
}
else
{
ListBox1.Items.RemoveAt(index);
}
问题出在当我在里面插入或者添加再循环上下移动后Index的值却没有变,比如最初index的值是2,执行以上操作后我想删除最后一项,实际删除的确实不是最后一项!
帮帮忙。。。。换种想法也行!!
插入:
int i = ListBox1.SelectedIndex;
string item = TextBox1.Text;
ListBox1.Items.Insert(i, item);
循环上移:思路:先把选中项一直下移,当移到最下面的时候与最上面项交换值,然后再继续下移,移动(count-1)次就实现了,for语言用于循环移动,下移同理
int count = ListBox1.Items.Count;
int index = ListBox1.SelectedIndex;
string temp;
for (int i = 0; i < (count - 1); i++)
{
if (index >= (count - 1) || index < 0)
{
//头尾交换
temp = ListBox1.Items[count - 1].Text;
ListBox1.Items[count - 1].Text = ListBox1.Items[0].Text;
ListBox1.Items[0].Text = temp;
index = 0;
}
else
{
&n 展开
int index = ListBox1.SelectedIndex;
int index = ListBox1.SelectedIndex;
if (index < 0)
{
Response.Write("<script>alert('请选中要删除的项 ')</script>");
}
else
{
ListBox1.Items.RemoveAt(index);
}
问题出在当我在里面插入或者添加再循环上下移动后Index的值却没有变,比如最初index的值是2,执行以上操作后我想删除最后一项,实际删除的确实不是最后一项!
帮帮忙。。。。换种想法也行!!
插入:
int i = ListBox1.SelectedIndex;
string item = TextBox1.Text;
ListBox1.Items.Insert(i, item);
循环上移:思路:先把选中项一直下移,当移到最下面的时候与最上面项交换值,然后再继续下移,移动(count-1)次就实现了,for语言用于循环移动,下移同理
int count = ListBox1.Items.Count;
int index = ListBox1.SelectedIndex;
string temp;
for (int i = 0; i < (count - 1); i++)
{
if (index >= (count - 1) || index < 0)
{
//头尾交换
temp = ListBox1.Items[count - 1].Text;
ListBox1.Items[count - 1].Text = ListBox1.Items[0].Text;
ListBox1.Items[0].Text = temp;
index = 0;
}
else
{
&n 展开
4个回答
展开全部
你删除了一项以后,应把ListBox1.SelectedIndex修改为新的最后一项:ListBox1.SelectedIndex=ListBox1.Items.Count-1;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
别按索引删除 按 SelectedItem 删除
Remove方法中有一个
Remove方法中有一个
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
protected void Button1_Click(object sender, EventArgs e)
{
int position = ListBox1.SelectedIndex;
string value = ListBox1.SelectedItem.Value;
if (position == 0)
{
return;
}
else
{
ListBox1.Items.RemoveAt(position);
ListBox1.Items.Insert(position - 1, value);
}
}
protected void Button2_Click(object sender, EventArgs e)
{
int position = ListBox1.SelectedIndex;
string value = ListBox1.SelectedItem.Value;
if (position == ListBox1.Items.Count-1)
{
return;
}
else
{
ListBox1.Items.RemoveAt(position);
ListBox1.Items.Insert(position + 1, value);
}
}
protected void Button3_Click(object sender, EventArgs e)
{
ListBox1.Items.RemoveAt(ListBox1.SelectedIndex);
}
请问你的其它方法是怎么写的?能给出来看一下么?
{
int position = ListBox1.SelectedIndex;
string value = ListBox1.SelectedItem.Value;
if (position == 0)
{
return;
}
else
{
ListBox1.Items.RemoveAt(position);
ListBox1.Items.Insert(position - 1, value);
}
}
protected void Button2_Click(object sender, EventArgs e)
{
int position = ListBox1.SelectedIndex;
string value = ListBox1.SelectedItem.Value;
if (position == ListBox1.Items.Count-1)
{
return;
}
else
{
ListBox1.Items.RemoveAt(position);
ListBox1.Items.Insert(position + 1, value);
}
}
protected void Button3_Click(object sender, EventArgs e)
{
ListBox1.Items.RemoveAt(ListBox1.SelectedIndex);
}
请问你的其它方法是怎么写的?能给出来看一下么?
追问
大哥,代码我补出来了,能不能帮看看!!可以加QQ说哈不嘛!万分感谢啊 !!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
建议你从后往前删除,这样就不会有问题了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询