如何等待手动打开菜单的结果?

时间:2017-11-03 04:33:38

标签: c# winforms

通常通过单击鼠标右键打开菜单(此部分易于处理),但有时我需要自动打开菜单并等待用户选择项目。我的方法是这样的:

//let menu be a ContextMenuStrip
//newlyCreatedObject be a object set by menu's click event handler
public Object createNewObject()
{
    menu.show();         //this line should block until menu close,but it didn't 
    return newlyCreatedObject;   //ERROR:immediately return before event handler run
}

理想情况下,menu.show()部分应该像MFC Dialog的DoModal()一样处理所有菜单的交互,并在菜单关闭时返回。之后,我可以获得新的CreatedObject并随心所欲地做任何事情。 所以我的问题是如何在返回newlyCreatedObject之前等待菜单完成?

PS:我正在尝试编写像应用程序一样的UE4蓝图。在UE4蓝图中,您可以单击鼠标右键显示菜单并选择要添加的内容,或者从引脚和释放按钮中拖出链接以显示菜单并自动链接新添加的功能(此部分为我想要实现的目标)。我想有可能打破创建部分和链接部分,但这必然导致很多状态。

0 个答案:

没有答案