C# listview中要选定某项时焦点选定项不一致的问题

C#开发也有段时间了,今天在listview上遇到一个问题:
当我们需要选定listview中的某项时我们一般会使用:

//要选定项的序号
int index = 5;
listView1.Items[index].Selected = true;
listView1.Select();

但如果用户将要在界面上使用上下键时,就会出现bug:虽然高亮显示确实是第六行(索引从0 开始),但按下键时光标将回到第二行,第三行,第四行…而非第七行,第八行,第九行…
出现问题的原因是listview界面中使用上下键选定的是焦点。当listview获得焦点时,listview.Item[0],也就是第一项将自动获得焦点,这时按下键将会导致listview.item[1]获得焦点,也就是上文所提到的从第六行跳回第二行。

解决方法:

int index = 5;
listView1.Items[index].Selected = true;
listView1.Items[index].Focused = true;
listView1.Select();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值