C#-ContextMenuStrip.close()问题

C#-ContextMenuStrip.close()问题,c#,contextmenustrip,C#,Contextmenustrip,我有一些地图控件,当我单击它时,我打开contextMenuStrip,然后单击以获取地图的快照。 问题是,当我单击快照时,它的快照映射包括contextMenuStrip。 我尝试使用“contextMenuStrip.Close()”但不起作用 //on map click event private void map1_Click(MouseEventArgs e) { System.Drawing.Point point = new System.Drawing.Point(e.X

我有一些地图控件,当我单击它时,我打开contextMenuStrip,然后单击以获取地图的快照。 问题是,当我单击快照时,它的快照映射包括contextMenuStrip。 我尝试使用“contextMenuStrip.Close()”但不起作用

//on map click event
private void map1_Click(MouseEventArgs e)
{
   System.Drawing.Point point = new System.Drawing.Point(e.X, e.Y + 160);
   contextMenu.Show(this.contextMenu, point);
}


//item of contextMenu
private void contextMenuConvert_Click(object sender, EventArgs e)
{
   contextMenu.Close();
   map.CreateImage(ImageFormat.Jpeg);
}

只发送排队的消息。如果要确保确实完成了,请在Close调用和CreateImage调用之间使用Application.DoEvents()。

而不是尝试拍摄屏幕快照(我假设您正在这样做),是否可以向地图对象添加代码,使其能够将自身渲染为屏幕外图像?这样,调用方就可以将该图像保存到文件中,或者使用它执行任何其他操作。您将能够重用几乎所有当前的渲染代码,只需稍加调整即可支持屏幕外渲染的想法