在C#中ListView这个控件选中删除多项,怎么解决?

我的代码://删除试题privatevoid删除ToolStripMenuItem_Click(objectsender,EventArgse){if(this.lvSh... 我的代码:
//删除试题
private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (this.lvShow.SelectedItems.Count > 0) //选中空白处,不执行删除操作
{
DialogResult result = MessageBox.Show("您确定删除吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (result == DialogResult.Yes)
{
SqlConnection con = GetDB.DB();
for (int index = 0; index < this.lvShow.SelectedItems.Count; index++)
{
int questionId = Convert.ToInt32(this.lvShow.SelectedItems[index].Tag);
string sql = string.Format("delete from Question where QuestionId={0}", questionId);
SqlCommand cmd = new SqlCommand(sql, con);
try
{
con.Open();
cmd.ExecuteNonQuery();
}
catch
{
MessageBox.Show("系统繁忙,请稍后重试!");
}
finally
{
con.Close();
}
//判断在没有选择难度的情况下,刷新的值
if (this.cboBox.SelectedItem != null)
{
UpperMethod();
}
else
{
GetBody();
}
}
}
}
}

这段代码 我调试 就是当index等于0的时候运行正确,当我选择了多项删除的时候。只会删除第一项。。当index等于1的时候 是满足for循环的 但是。直接结束了循环..悲剧 偶QQ254745230 大家帮忙下..
展开
 我来答
草薙在
2010-07-18 · TA获得超过4795个赞
知道大有可为答主
回答量:6187
采纳率:50%
帮助的人:6331万
展开全部
因为你在删除的时候会改变内部Item的索引,这是很容易犯的错误,正确的做法是取出来所有的Item,然后执行操作,再删除,删除的时候从后面往前面删,这样就不会出现前面item删掉以后后面的item索引挤到前面的情况
曲清安厍亥
2020-02-20 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.4万
采纳率:29%
帮助的人:728万
展开全部
给你个例子:tnclass.tooltiptext
=
bi.remark;//鼠标放在上面显示的简介
。后面bi.remark你可以改为你的当前图片路径
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Lim
2010-07-18 · 知道合伙人软件行家
Lim
知道合伙人软件行家
采纳数:152 获赞数:1014
资深研发工程师,敏捷教练ScrumMaster

向TA提问 私信TA
展开全部
已经加Q.limlee
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式