如何将上下文菜单集成到TPageControl的每个选项卡?

更新于
2026-10-03 09:18:34
0阅读来源:SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计204个文字,预计阅读时间需要1分钟。

希望将一个上下文菜单位置到TPageControl的选项卡中(仅选项卡),与选项卡区域不同(例如,Delphi提供的文件/页面选项)。我知道可以使用TRzPageControl实现这一点,但TPageControl能行吗?

我希望将一个上下文菜单添加到TPageControl的(只是)选项卡中,与选项卡区域不同(例如Delphi提供的文件/页面选项).我知道我可以用TRzPageControl做到这一点,但TPageControl怎么可能呢? 如果您不想创建组件,可以始终使用PageControl的OnContextPopup,并根据鼠标位置切换其PopupMenu.

假设您已经创建了2个PopuMenus pmTabs和pmPages,以下代码将在按下标签区域时显示第1个,否则显示第2个:

procedure TForm2.PageControl1ContextPopup(Sender: TObject; MousePos: TPoint; var Handled: Boolean); begin with Sender as TPageControl do begin if [htOnItem] * GetHitTestInfoAt(MousePos.X, MousePos.Y) <> [] then PopupMenu := pmTabs else PopupMenu := pmPages; end; end;

本文共计204个文字,预计阅读时间需要1分钟。

希望将一个上下文菜单位置到TPageControl的选项卡中(仅选项卡),与选项卡区域不同(例如,Delphi提供的文件/页面选项)。我知道可以使用TRzPageControl实现这一点,但TPageControl能行吗?

我希望将一个上下文菜单添加到TPageControl的(只是)选项卡中,与选项卡区域不同(例如Delphi提供的文件/页面选项).我知道我可以用TRzPageControl做到这一点,但TPageControl怎么可能呢? 如果您不想创建组件,可以始终使用PageControl的OnContextPopup,并根据鼠标位置切换其PopupMenu.

假设您已经创建了2个PopuMenus pmTabs和pmPages,以下代码将在按下标签区域时显示第1个,否则显示第2个:

procedure TForm2.PageControl1ContextPopup(Sender: TObject; MousePos: TPoint; var Handled: Boolean); begin with Sender as TPageControl do begin if [htOnItem] * GetHitTestInfoAt(MousePos.X, MousePos.Y) <> [] then PopupMenu := pmTabs else PopupMenu := pmPages; end; end;