我已经为我的NotifyIcon创建了ContextMenuStrip(在系统托盘中)。但是,ContextMenuStrip的方向始终在左侧。我注意到,在许多其他应用程序(例如skype)上,它在右侧打开:



我的ContextMenuStrip始终在左侧打开。我试图设置DefaultDropDownDirection,但是徒劳无功->无论我选择什么ToolStripDownDirection,它总是一样的:

 _menuStrip.DefaultDropDownDirection = ToolStripDropDownDirection.BelowRight;


我希望能够更改ContextMenuStrip打开的方向。任何的想法?

最佳答案

您应该使用Opening事件(msdn)和ContextMenuStrip.Show方法(msdn):

...
ContextMenuStrip _menuStrip = new ContextMenuStrip();
_menuStrip.Opening +=_menuStrip_Opening;
...


打开事件处理程序:

void _menuStrip_Opening(object sender, CancelEventArgs e)
{
    ContextMenuStrip menuStrip = (sender as ContextMenuStrip);
    menuStrip.Show(Cursor.Position, ToolStripDropDownDirection.AboveRight);
}

10-08 19:53