在任务栏上绘制上下文菜单条
本文关键字:菜单 上下文 绘制 任务栏 | 更新日期: 2023-09-27 18:04:28
我想知道是否有一些方法可以在任务栏上绘制元素?
例如,我有一个在屏幕左下角显示一些上下文菜单的应用程序。我试过ContextMenu
和ContextMenuStrip
,我想用第二个。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显示在任务栏上!