在任务栏上绘制上下文菜单条

本文关键字:菜单 上下文 绘制 任务栏 | 更新日期: 2023-09-27 18:04:28

我想知道是否有一些方法可以在任务栏上绘制元素?

例如,我有一个在屏幕左下角显示一些上下文菜单的应用程序。我试过ContextMenuContextMenuStrip,我想用第二个。ContextMenu在任务栏上绘制,但ContextMenuStrip不是-它只是在任务栏上方显示一些像素。

是否有一种方法来绘制ContextMenuStrip任务栏?

在任务栏上绘制上下文菜单条

我终于找到了答案。ContextMenuStrip有内部的ShowInTaskbar方法:

internal void ShowInTaskbar(int x, int y)

不能以通常的方式使用,但可以调用它(通常不建议这样做,因为它可能在线程顺序逻辑中导致一些错误)。如果你想使用一些内部或私有类的方法,你可以这样做:

MethodInfo mi = typeof(ContextMenuStrip).GetMethod("ShowInTaskbar", BindingFlags.Instance | BindingFlags.NonPublic);
mi.Invoke(contextMenuStrip1, new object[] { mousePositionX, mousePositionY });

你只需要发送正确的菜单条和鼠标坐标,以便在适当的位置显示菜单。

使用此方法后,我的contextMenuStip1显示在任务栏上!