完善 VC# ListView 系列-List 模式横向滚动条变竖向(垂直)滚动条的替代方案

  • 完善 VC# ListView 系列-增大行间距
  • 完善 VC# ListView 系列-首列不能居中
  • 完善 VC# ListView 系列-单击双击行、列
  • 完善 VC# ListView 系列-可编辑单元格
  • 完善 VC# ListView 系列-单击多列,按多列排序
  • 完善 VC# ListView 系列-List 模式横向滚动条变竖向(垂直)滚动条的替代方案

ListView 的 View 为 List 时,当列表装不下时,出现的滚动条是横向的,怎么变成竖向的呢?

网上有解决方案,但是很复杂,我也没细看,好像要派生一个 ListView 类,所以本文讲解替代方案。

使用 ListBox

使用 ListBox 时,有些与 ListView 不同,略作改造。

1、获取某行是否已经被选择

_list.Items[i].Selected 改为 _list.GetSelected(i)。

2、多选

SelectionMode 改为 MultiExtendedMultiSimple

MultiExtended 可以框选实现多选,按 Shift、Ctrl + 鼠标实现多选。

MultiSimple 是鼠标点一下 A 项,A 项选中,点一下 B 项(不需要按其他键),B 项选中,再点一下已经选中,该项就不选中。

3、取选中行的值

ListView 循环 Items 是 ListViewItem,而 ListBox 要简单些,循环其 Items 时,各项是 object,ToString() 后得到的是该项所显示的字符串。

foreach (var item in _list.Items)
{
    item.ToString();
}
  • 完善 VC# ListView 系列-增大行间距
  • 完善 VC# ListView 系列-首列不能居中
  • 完善 VC# ListView 系列-单击双击行、列
  • 完善 VC# ListView 系列-可编辑单元格
  • 完善 VC# ListView 系列-单击多列,按多列排序
  • 完善 VC# ListView 系列-List 模式横向滚动条变竖向(垂直)滚动条的替代方案

你可能感兴趣的