ListView 的 View 为 List 时,当列表装不下时,出现的滚动条是横向的,怎么变成竖向的呢?
网上有解决方案,但是很复杂,我也没细看,好像要派生一个 ListView 类,所以本文讲解替代方案。
使用 ListBox
使用 ListBox 时,有些与 ListView 不同,略作改造。
1、获取某行是否已经被选择
_list.Items[i].Selected 改为 _list.GetSelected(i)。
2、多选
将 SelectionMode 改为 MultiExtended 或 MultiSimple。
MultiExtended 可以框选实现多选,按 Shift、Ctrl + 鼠标实现多选。
MultiSimple 是鼠标点一下 A 项,A 项选中,点一下 B 项(不需要按其他键),B 项选中,再点一下已经选中,该项就不选中。
3、取选中行的值
ListView 循环 Items 是 ListViewItem,而 ListBox 要简单些,循环其 Items 时,各项是 object,ToString() 后得到的是该项所显示的字符串。
foreach (var item in _list.Items) { item.ToString(); }