nim_duilib/docs/List/ListBox.md
2019-04-19 17:19:57 +08:00

236 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ListBox
`ListBox` 继承了 `ScrollableBox` 容器属性和方法,更多可用属性和方法请参考:[ScrollableBox](../Containers/ScrollableBox.md) 容器
## 可用属性
| 属性名称 | 默认值 | 参数类型 | 用途 |
| :--- | :--- | :--- | :--- |
| scrollselect | false | BOOL | 是否随滚动改变选中项,如(false) |
## 可用接口
| 接口名称 | 用途 |
| :--- | :--- |
| [ScrollItemToTop](#ScrollItemToTop) | 滚动到指定子项位置 |
| [GetTopItem](#GetTopItem) | 获取当前位置第一个子项 |
| [SetItemIndex](#SetItemIndex) | 设置子项的位置索引 |
| [Previous](#Previous) | 选中上一项 |
| [Next](#Next) | 选中下一项 |
| [ActiveItem](#ActiveItem) | 触发选中项的双击事件 |
| [Add](#Add) | 追加一个子项到末尾 |
| [AddAt](#AddAt) | 在指定位置之后插入一个子项 |
| [Remove](#Remove) | 根据子项指针 |
| [RemoveAt](#RemoveAt) | 根据索引移除一个子项 |
| [RemoveAll](#RemoveAll) | 移除所有子项 |
| [SortItems](#SortItems) | 排列子项 |
| [ItemComareFunc](#ItemComareFunc) | 默认的子项对比方法 |
| [GetScrollSelect](#GetScrollSelect) | 获取是否随滚动改变选中项设置 |
| [SetScrollSelect](#SetScrollSelect) | 设置是否随滚动改变选中项设置 |
| [AttachSelect](#AttachSelect) | 监听选择子项的事件 |
| [SelectNextWhenActiveRemoved](#SelectNextWhenActiveRemoved) | 在移除一个子项后自动选择下一项 |
### ScrollItemToTop
滚动到指定子项位置
```cpp
virtual bool ScrollItemToTop(const std::wstring& strItemName)
```
- 数:
- `strItemName` 子项名称
- 返回值:成功返回 true否则为 false可能控件不存在
### GetTopItem
获取当前位置第一个子项
```cpp
virtual Control* GetTopItem()
```
- 数:无
- 返回值:返回第一个子项指针
### SetItemIndex
设置子项的位置索引
```cpp
bool SetItemIndex(Control* pControl, std::size_t iIndex)
```
- 数:
- `pControl` 子项指针
- `iIndex` 索引号
- 返回值:成功返回 true否则返回 false
### Previous
选中上一项
```cpp
void Previous()
```
- 数:无
- 返回值:无
### Next
选中下一项
```cpp
void Next()
```
- 数:无
- 返回值:无
### ActiveItem
触发选中项的双击事件
```cpp
void ActiveItem()
```
- 数:无
- 返回值:无
### Add
追加一个子项到末尾
```cpp
bool Add(Control* pControl)
```
- 数:
- `pControl` 子项指针
- 返回值:成功返回 true失败返回 false
### AddAt
在指定位置之后插入一个子项
```cpp
bool AddAt(Control* pControl, int iIndex)
```
- 数:
- `pControl` 子项指针
- `iIndex` 要插入的位置索引
- 返回值:成功返回 true失败返回 false
### Remove
根据子项指针
```cpp
bool Remove(Control* pControl)
```
- 数:
- `pControl` 子项指针
- 返回值:成功返回 true失败返回 false
### RemoveAt
根据索引移除一个子项
```cpp
bool RemoveAt(int iIndex)
```
- 数:
- `iIndex` 子项索引
- 返回值:成功返回 true失败返回 false
### RemoveAll
移除所有子项
```cpp
void RemoveAll()
```
- 数:无
- 返回值:无
### SortItems
排列子项
```cpp
bool SortItems(PULVCompareFunc pfnCompare, UINT_PTR dwData)
```
- 数:
- `pfnCompare` 自定义排序函数
- `dwData` 用于子项对比时的数据
- 返回值:成功返回 true失败返回 false
### ItemComareFunc
默认的子项对比方法
```cpp
static int __cdecl ItemComareFunc(void *pvlocale, const void *item1, const void *item2)
```
- 数:
- `pvlocale` 保存 List 指针
- `item1` 子项1
- `item2` 子项2
- 返回值:返回对比结果
### GetScrollSelect
获取是否随滚动改变选中项设置
```cpp
bool GetScrollSelect()
```
- 数:无
- 返回值:返回 true 表示跟随滚动条改变选择项,否则为 false
### SetScrollSelect
设置是否随滚动改变选中项设置
```cpp
void SetScrollSelect(bool bScrollSelect)
```
- 数:
- `bScrollSelect` 为 true 是为跟随滚动条改变选中项false 为不跟随
- 返回值:无
### AttachSelect
监听选择子项的事件
```cpp
void AttachSelect(const EventCallback& callback)
```
- 数:
- `callback` 选择子项时的回调函数
- 返回值:无
### SelectNextWhenActiveRemoved
在移除一个子项后自动选择下一项
```cpp
void SelectNextWhenActiveRemoved(bool bSelectNextItem)
```
- 数:
- `bSelectNextItem` 为 true 时自动选择下一项false 为不自动选择
- 返回值:无