我想知道是否有某种方法可以在任务栏上绘制元素?
例如,我有一个应用程序,它在屏幕的左下角显示一些上下文菜单。我尝试了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在任务栏上显示了!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句