我想知道是否有某种方法可以在任务栏上绘制元素?
例如,我有一个应用程序,它在屏幕的左下角显示了一些上下文菜单。我尝试了ContextMenu
和ContextMenuStrip
,我想使用第二个。 ContextMenu
正在绘制任务栏,但ContextMenuStrip
不是 - 它只显示在任务栏上方的一些像素。
有没有办法在任务栏上绘制ContextMenuStrip
?
答案 0 :(得分:0)
最后我设法找到答案。 ContextMenuStrip有internal ShowInTaskbar method:
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显示在任务栏上!