【问题标题】:How to show hint only in Header in TVirtualStringtree?如何仅在 TVirtualStringtree 的 Header 中显示提示?
【发布时间】:2016-08-16 12:22:03
【问题描述】:

我只想在用户将鼠标移到 TVirtualStringTree 中的 Header 上而不是 Data 节点上时显示提示。现在我只能显示它数据节点而不是在标题中,使用以下代码:

procedure TForm1.FormCreate(Sender: TObject);
begin
  VirtualStringTree1.Header.Columns.Add.Text := 'Brand';
  VirtualStringTree1.Header.Columns[0].Width := 100;
  VirtualStringTree1.Header.Columns.Add.Text := 'Model';
  VirtualStringTree1.Header.Columns[1].Width := 100;

  // Set the Hint text
  VirtualStringTree1.Hint := 'Click to sort by Car brand';

  // Show Header
  VirtualStringTree1.Header.Options := VirtualStringTree1.Header.Options + [hoVisible];

  // Enable Hint in Header
  VirtualStringTree1.Header.Options := VirtualStringTree1.Header.Options + [hoShowHint];

  // Disable the Hint in Data nodes
  VirtualStringTree1.ShowHint := False;
end;

使用此代码,任何地方都不会显示任何提示,不在数据节点中,也不在标题中。

如果我设置:

// Enable Hint in Data nodes
VirtualStringTree1.ShowHint := True; 

在这种情况下,Hint 显示在 Data 节点中,但不在 Header 中,即使 [hoShowHint] 已添加到 Header.Options。

如何仅在标题而不在数据节点中显示提示 - 以便用户只有在鼠标悬停在标题而不是数据节点时才能看到“单击以按汽车品牌排序”?

【问题讨论】:

  • 不是每一列都有Hint属性吗?
  • 现在我知道了。谢谢。

标签: delphi


【解决方案1】:

TVirtualStringTree(在下面的VST)列标题中显示提示:

  1. 打开列编辑器,在编辑器中选择一列。

  2. 在 Object Inspector 中找到 Hint 属性并输入文本

  3. 选择VST 后查找属性Header - Options - hoShowHint 并设置为true。

  4. 选中VST 后,查找属性ShowHint 并设置为true。

  5. 要在“数据”区域显示提示,请在Hint 属性中输入提示文本。要在“数据”区域不显示提示,请清除 Hint 属性。

在您的代码中,您缺少输入列标题提示文本的行:

  VirtualStringTree1.Header.Columns[0].Hint := 'Hint for first column header';

其他列也类似。

【讨论】:

  • 是的,这就是我需要的,所以我可以为每一列设置提示。浏览示例我找不到这个。
猜你喜欢
  • 1970-01-01
  • 2017-10-07
  • 1970-01-01
  • 2020-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-14
  • 2023-03-19
相关资源
最近更新 更多