55 lines
1.9 KiB
Markdown
55 lines
1.9 KiB
Markdown
# BUG-20260217-0001
|
||
|
||
> 适用场景:记录问题本身,不展开完整修复方案。修复内容写入对应的 Fix 文档。
|
||
|
||
## 基本信息
|
||
|
||
- ID: BUG-20260217-0001
|
||
- 标题: TabControl::getActiveIndex 无激活页返回最后索引
|
||
- 状态:已修复
|
||
- 严重性:S2
|
||
- 优先级:P1
|
||
- 模块: TabControl
|
||
- 版本 / 分支: v3.0.0 / master
|
||
- 环境: Windows 10/11 x64 + Visual Studio 2022(MSVC)Debug / Release
|
||
- 发现人: 用户
|
||
- 关联 Fix ID: Fix-BUG-20260217-0001
|
||
|
||
## 问题描述
|
||
|
||
- 现象: 当 TabControl 的页签对列表不为空,但所有页签均未激活 / 未打开时,调用 `getActiveIndex()` 会返回最后一个页签的索引。
|
||
- 影响范围: 用户通过 `getActiveIndex()` 判断当前激活页时,可能拿到错误索引。
|
||
- 期望结果: 无页签激活时返回 `-1`;有页签激活时返回对应索引。
|
||
- 实际结果: 无页签激活时返回最后一个页签索引。
|
||
|
||
## 复现信息
|
||
|
||
- 前置条件:[可选] TabControl 页签列表不为空,但所有页签都未激活。
|
||
- 复现步骤:
|
||
|
||
1. 创建含有页签的 TabControl。
|
||
2. 保持所有页签未激活 / 未打开。
|
||
3. 调用 `TabControl::getActiveIndex()`。
|
||
4. 观察返回值。
|
||
|
||
- 复现概率:必现
|
||
- 最小复现 Demo:[可选]
|
||
- 证据:PDF 历史记录标记为代码分析发现。
|
||
|
||
## 初步分析
|
||
|
||
- 疑似位置: `TabControl::getActiveIndex()`
|
||
- 触发条件: 页签列表非空且无任何页签处于激活状态。
|
||
- 相关线索:
|
||
- 旧逻辑未处理“列表非空但全部未激活”的兜底分支。
|
||
- 返回值应能区分无激活页与最后一页激活。
|
||
- 最近相关改动:[可选]
|
||
|
||
## 跟踪信息
|
||
|
||
- 首次发现时间: 2026-02-17
|
||
- 最后更新时间: 2026-09-19(从 PDF 整理入库)
|
||
- 修复版本: v3.0.1
|
||
- 验证版本:[可选] v3.0.1
|
||
- 备注:[可选] 来源原始 ID 为 `BUG-20260217`;PDF 未包含 `-XXXX` 后缀,入库时补充序号。
|