表头控件 (SHeaderCtrl)¶
Warning
The current page still doesn't have a translation for this language.
You can read it through google translate.
表头控件用于显示列表或表格的标题栏,支持列宽调整、排序等功能。它通常作为列表控件的一部分,也可以独立使用。
基本信息¶
- 类名:
SHeaderCtrl
- 控件标签:
headerctrl
- 基类:
SWindow
- 功能:提供表格列表的标题栏功能
属性说明¶
基本属性¶
属性名 | 类型 | 默认值 | 说明 |
---|---|---|---|
align | string | - | 水平对齐,可选值:left,center,right |
itemSwapEnable | bool | - | 是否允许列交换 |
fixWidth | bool | - | 列宽是否固定 |
sortHeader | bool | - | 是否支持排序 |
itemWidth | int | 60 | 默认列宽 |
外观属性¶
属性名 | 类型 | 默认值 | 说明 |
---|---|---|---|
colorText | color | - | 文本颜色 |
font | string | - | 文本字体 |
itemSkin | string | - | 列项皮肤 |
尺寸属性¶
属性名 | 类型 | 默认值 | 说明 |
---|---|---|---|
itemHeight | int | - | 行高 |
separatorWidth | int | 1 | 分隔线宽度 |
separatorColor | color | C0C0C0 | 分隔线颜色 |
使用示例¶
基本表头¶
<headerctrl name="hdrBasic"
pos="10,10,510,40"
itemWidth="100"
align="center"
font="bold:1">
<items>
<item width="80">列标题1</item>
<item width="120">列标题2</item>
<item width="150">列标题3</item>
</items>
</headerctrl>
(删除此块,因为已包含在ctrl.xml示例中)
(删除此块,因为已包含在ctrl.xml示例中)
(删除此部分,因为代码操作部分已包含在ctrl.xml示例中)
事件处理¶
表头控件支持以下事件:
事件名 | EventID | 说明 |
---|---|---|
EVT_HEADER_CLICK | EventHeaderClick::EventID | 表头点击事件 |
EVT_HEADER_SIZECHANGED | EventHeaderSizeChanged::EventID | 表头尺寸改变事件 |
EVT_HEADER_SWAPPED | EventHeaderSwapped::EventID | 表头交换事件 |
// 事件处理示例
EVENT_MAP_BEGIN()
EVENT_NAME_HANDLER(L"hdrBasic", EventHeaderClick::EventID, OnHeaderClick)
EVENT_NAME_HANDLER(L"hdrBasic", EventHeaderSizeChanged::EventID, OnHeaderSizeChanged)
EVENT_MAP_END()
void OnHeaderClick(IEvtArgs *pEvt)
{
EventHeaderClick *pRealEvt = sobj_cast<EventHeaderClick>(pEvt);
int nItem = pRealEvt->nItem;
// 处理表头点击
}
void OnHeaderSizeChanged(IEvtArgs *pEvt)
{
EventHeaderSizeChanged *pRealEvt = sobj_cast<EventHeaderSizeChanged>(pEvt);
int nItem = pRealEvt->nItem;
int nWidth = pRealEvt->nWidth;
// 处理表头尺寸改变
}
(删除样式定制部分,因为ctrl.xml中未定义相关样式属性)
最佳实践¶
- 对齐方式:根据数据类型选择合适的对齐方式,文本通常左对齐,数字通常右对齐
- 交互设计:通过 itemSwapEnable 属性控制是否允许用户调整列顺序
- 宽度控制:使用 fixWidth 属性控制列宽是否固定
- 排序功能:根据需要启用 sortHeader 属性提供排序功能
- 视觉效果:通过 colorText 和 font 属性优化表头视觉效果
常见问题¶
Q: 表头列宽无法调整怎么办?¶
A: 确保父控件允许调整大小,并且没有设置 fixWidth 为 1。
Q: 表头文本显示不完整怎么办?¶
A: 检查 itemHeight 是否足够显示文本,或调整列宽度。
Q: 排序功能不工作怎么办?¶
A: 确保设置了 sortHeader 为 1,并正确处理排序事件。
相关控件¶
- 列表控件(SListCtrl) - 支持表头的列表控件
- 多列列表视图(SMCListView) - 基于MVC模式的多列表控件
- 树控件(STreeCtrl) - 支持层级结构的树形控件