TabControl - 如何强制事件 OnGetImageIndex

TabControl - How to force event OnGetImageIndex

我有一个带有 TabControl 组件的 Delphi VCL 表单应用程序(用于 Windows),其中的选项卡是在 运行 时创建的。 Images 属性 链接到 ImageList,我使用 OnGetImageIndex 事件根据状态信息为每个选项卡设置图像索引。在某些时候,当状态发生变化时,我需要更新此图像(索引)。我的第一个想法是调用:

TabControl1.Invalidate;

但是没用。我也尝试了另一种方法但没有成功:

TabControl1.Repaint;

RedrawWindow(TabControl1.Handle, nil, 0, RDW_ERASE or
  RDW_INVALIDATE or RDW_ALLCHILDREN);

请问,如何为每个选项卡强制使用 OnGetImageIndex?谢谢!

您可以为每个选项卡调用受保护的UpdateTabImages method which sends a TCM_SETITEM

type
  TAccessTabControl = class(TTabControl);

...

  TAccessTabControl(TabControl1).UpdateTabImages;