TabControl - 如何强制事件OnGetImageIndex

Guy*_*ush 2 delphi vcl tabcontrol

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

TabControl1.Invalidate;
Run Code Online (Sandbox Code Playgroud)

但它不起作用.我也尝试了另一种没有成功的方法:

TabControl1.Repaint;

RedrawWindow(TabControl1.Handle, nil, 0, RDW_ERASE or
  RDW_INVALIDATE or RDW_ALLCHILDREN);
Run Code Online (Sandbox Code Playgroud)

请问,我如何为每个标签强制使用OnGetImageIndex?谢谢!

Ser*_*yuz 5

您可以调用为每个选项卡UpdateTabImages发送一个的受保护方法TCM_SETITEM.

type
  TAccessTabControl = class(TTabControl);

...

  TAccessTabControl(TabControl1).UpdateTabImages;
Run Code Online (Sandbox Code Playgroud)