ListView一些属性

1.设置item之间的分割线:

android:divider=”@color/gray”
android:dividerHeight=”2dp”

2.隐藏listivew的滚动条:

android:scrollbars=”none”

3.取消listview的item点击效果:

android:listSelector=”#000000”
也可以使用Android自带的透明度实现:
android:listSelector=”@android:color/transparent”

4.设置listview显示在第几个item:

listview.setSection(N);
也可以这样做:
listview.smoothScrollBy(distance,duration);
listview.smoothScrollByOffset(offset);
listview.smoothScrollToPosition(index);

5.遍历listview中的item:

for(int i=0;i<listview.getChildCount();i++){
        View view = listview.getChildAt(i);
}

6.listview空数据时设置空布局:(可设置一张图片或其他布局)

emptyView = (ImageView)findviewById(R.id.iv_enptyView);
listview.setEmptyView(emptyView);

7.使listview具有弹性滑动(即滑动到顶部或底部还会滑动一段距离):

修改overScrollBy中的maxOverScrollY
重写overScrollBy方法:

    @Override
    protected boolean overScrollBy(int deltaX,int deltaY,int scrollX,int scrollY,int scrollRangeX,int  scrollRangeY,int maxOverScrollX,int maxOverScrollY,boolean isTouchEvent){

return super.overScrollBy(deltaX ,deltaY,scrollX,scrollY ,scrollRangeX,scrollRangeY,maxOverScrollX,mMaxOverDistance, isTouchEvent);

    }

private initView(){

DisplayMetrics metrics =mContext.getResources().getDisplayMetrics();
float density = metrics.density ;
mMaxOverDistance=(int)(density *mMaxOverDistance);
}
<think>我们正在讨论VBA中的ListView控件,用户要求介绍ListView控件的属性。根据引用[4],ListView控件有许多属性可以设置。同时,用户之前的对话中提到了在VBA窗体中使用ListView控件,所以我们将重点放在VBA ListView控件的属性上。 注意:虽然引用中提到了C#和Android中的ListView,但用户当前问题是在VBA环境下,所以我们将以VBA ListView控件的属性为主。 在VBA中,ListView控件是MSComctlLib库中的控件,其常用属性如下: 1. **View属性**:设置列表的显示模式。常见值有: - `lvwIcon`(0):大图标 - `lvwSmallIcon`(1):小图标 - `lvwList`(2):列表 - `lvwReport`(3):详细视图(类似表格) 2. **ColumnHeaders**:用于在详细视图(Report)下设置列标题集合。通过ColumnHeaders.Add方法添加列。 3. **ListItems**:列表项的集合,每个ListItem代表一行。通过ListItems.Add添加一行。 4. **FullRowSelect**:布尔值,是否整行选中(仅Report视图有效)。 5. **GridLines**:布尔值,是否显示网格线(仅Report视图有效)。 6. **AllowColumnReorder**:布尔值,是否允许用户通过拖动列标题来重新排列列(仅Report视图有效)。 7. **Checkboxes**:布尔值,是否在每一项前显示复选框。 8. **MultiSelect**:布尔值,是否允许多选。 9. **HideColumnHeaders**:布尔值,是否隐藏列标题(仅Report视图有效)。 10. **LabelEdit**:设置用户是否可以编辑项目的标签(第一列)。可取: - `lvwAutomatic`(0):自动,允许编辑 - `lvwManual`(1):手动,不允许编辑 11. **Sorted**:布尔值,是否排序(注意:VBA中排序可能需要自定义)。 12. **SortKey**:整数,指定按哪一列排序(0表示按第一列,1表示按第二列,以此类推)。 13. **SortOrder**:排序顺序,`lvwAscending`(0)升序,`lvwDescending`(1)降序。 14. **SelectedItem**:返回当前选中的ListItem对象(如果多选,则返回第一个选中的项)。 15. **SelectedItems**:返回选中的ListItem对象的集合(当MultiSelect为True时可用)。 16. **HideSelection**:布尔值,当控件失去焦点时,选中的项是否保持高亮。 17. **HoverSelection**:布尔值,当鼠标悬停在项目上时是否自动选择该项(需要VBA ListView的特定版本支持,不一定所有版本都有)。 18. **Icons**和**SmallIcons**:分别指定大图标和小图标模式下使用的ImageList控件。 19. **Arrange**:设置图标排列方式,`lvwNone`(0)不排列,`lvwAutoLeft`(1)自动靠左排列,`lvwAutoTop`(2)自动靠上排列。 20. **AllowCustomize**:是否允许用户通过拖拽重新排列图标(仅图标视图有效)。 注意:VBA ListView控件的属性可能因版本不同略有差异,以上是常用属性。 下面是一个示例,展示如何在VBA中设置ListView属性: ```vb Private Sub UserForm_Initialize() With ListView1 .View = lvwReport .FullRowSelect = True .GridLines = True .Checkboxes = False .MultiSelect = False .AllowColumnReorder = True .LabelEdit = lvwManual .HideSelection = False ' 失去焦点时仍保持选中高亮 .ColumnHeaders.Add , , "姓名", 50 .ColumnHeaders.Add , , "年龄", 40 .ColumnHeaders.Add , , "部门", 80 End With End Sub ``` 另外,引用[1]中提到的GridView是WPF中的概念,在VBA中我们不使用,因此忽略。引用[2][3]分别是C#和Android中的ListView用法,与VBA无关,所以这里不再参考。 相关问题: 1. 如何设置ListView控件使用图标视图? 2. 如何在ListView中实现多选并获取所有选中项? 3. 如何对ListView中的数据进行排序? 4. 如何动态改变ListView的列宽? 5. 如何为ListView的每一项添加图标? 请根据上述信息回答用户关于ListView控件属性的问题。 </think>### VBA ListView 控件属性详解 ListView 是 VBA 窗体中功能强大的表格控件,其核心属性如下(基于 `Microsoft ListView Control, Version 6.0`): --- #### **1. 基础显示属性** | **属性** | **类型** | **说明** | **示例** | |----------|----------|----------|----------| | `View` | 常量 | 设置显示模式:<br>- `lvwIcon`(图标)<br>- `lvwSmallIcon`(小图标)<br>- `lvwList`(列表)<br>- `lvwReport`(表格视图) | `ListView1.View = lvwReport` | | `GridLines` | Boolean | 是否显示网格线(仅`lvwReport`有效) | `ListView1.GridLines = True` | | `FullRowSelect` | Boolean | 是否整行选中(仅`lvwReport`有效) | `ListView1.FullRowSelect = True` | | `HideColumnHeaders` | Boolean | 是否隐藏列标题 | `ListView1.HideColumnHeaders = False` | | `Checkboxes` | Boolean | 是否显示复选框 | `ListView1.Checkboxes = True` | --- #### **2. 数据操作属性** | **属性** | **类型** | **说明** | **示例** | |----------|----------|----------|----------| | `ListItems` | 集合 | 所有行数据的集合(通过 `.Add` 添加行) | `Set item = ListView1.ListItems.Add(, , "张三")` | | `ColumnHeaders` | 集合 | 列标题集合(通过 `.Add` 添加列) | `ListView1.ColumnHeaders.Add , , "姓名", 50` | | `MultiSelect` | Boolean | 是否允许多选 | `ListView1.MultiSelect = True` | | `Sorted` | Boolean | 是否自动排序 | `ListView1.Sorted = True` | | `SortKey` | Integer | 设置排序列索引(从 0 开始) | `ListView1.SortKey = 1` | | `SortOrder` | 常量 | 排序方式:`lvwAscending`(升序)/`lvwDescending`(降序) | `ListView1.SortOrder = lvwAscending` | --- #### **3. 交互控制属性** | **属性** | **类型** | **说明** | **示例** | |----------|----------|----------|----------| | `AllowColumnReorder` | Boolean | 是否允许拖动列调整顺序(仅`lvwReport`有效) | `ListView1.AllowColumnReorder = True` [^4] | | `LabelEdit` | 常量 | 是否允许编辑首列文本:<br>- `lvwAutomatic`(允许)<br>- `lvwManual`(禁止) | `ListView1.LabelEdit = lvwAutomatic` | | `HideSelection` | Boolean | 失去焦点时是否保持选中高亮 | `ListView1.HideSelection = False` | | `HoverSelection` | Boolean | 鼠标悬停时是否自动选中项 | `ListView1.HoverSelection = True` [^4] | --- #### **4. 数据获取属性** | **属性** | **类型** | **说明** | **示例** | |----------|----------|----------|----------| | `SelectedItem` | Object | 获取当前选中项 | `MsgBox ListView1.SelectedItem.Text` | | `SelectedItems` | 集合 | 获取所有选中项(需`MultiSelect=True`) | `For Each item In ListView1.SelectedItems` | | `CheckedItems` | 集合 | 获取所有勾选项(需`Checkboxes=True`) | `For Each item In ListView1.CheckedItems` | | `ListSubItems` | 集合 | 获取子项数据(列索引从 1 开始) | `item.SubItems(1) = "财务部"` | --- #### **5. 样式与布局** | **属性** | **类型** | **说明** | **示例** | |----------|----------|----------|----------| | `Icons` / `SmallIcons` | Object | 关联的图标库(需配合 `ImageList` 控件) | `Set ListView1.Icons = ImageList1` | | `Arrange` | 常量 | 图标排列方式:`lvwNone`/`lvwAutoLeft`/`lvwAutoTop` | `ListView1.Arrange = lvwAutoTop` | | `BackColor` / `ForeColor` | Long | 背景色/文字色 | `ListView1.BackColor = vbWhite` | --- ### 示例:完整初始化表格 ```vb Private Sub UserForm_Initialize() With ListView1 .View = lvwReport .GridLines = True .FullRowSelect = True .AllowColumnReorder = True .Checkboxes = True .MultiSelect = True ' 添加列 .ColumnHeaders.Add , , "ID", 40 .ColumnHeaders.Add , , "姓名", 80 .ColumnHeaders.Add , , "部门", 100 ' 添加数据 Dim item As ListItem Set item = .ListItems.Add(, , "101") item.SubItems(1) = "张三" item.SubItems(2) = "技术部" Set item = .ListItems.Add(, , "102") item.SubItems(1) = "李四" item.SubItems(2) = "财务部" End With End Sub ``` --- ### 相关问题 1. 如何动态调整 ListView 列宽? 2. 如何实现双击 ListView 行触发事件? 3. 怎样绑定数据库数据到 ListView 控件? 4. ListView 与 MSFlexGrid 的主要区别是什么? 5. 如何导出 ListView 数据到 Excel 工作表? [^4]: FullRowSelect、AllowColumnReorder 等属性仅在 Details 视图中生效[^4]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值