Files
StellarX-kaifa/开发记录/BUG/BUG-20260217-0001-TabControl-getActiveIndex无激活页返回最后索引.md
T

55 lines
1.9 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.
# 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` 后缀,入库时补充序号。