2011-07-26 34 views
1

我有一些地圖控件,當我點擊它,我打開的ContextMenuStrip,然後點擊我的地圖的快照。 問題是,當我點擊快照時,它的快照地圖包括contextMenuStrip。 我嘗試使用「contextMenuStrip.Close()」但不起作用。C# - 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); 
} 

Picture of example.

回答

2

這只是發送其排隊的消息。如果您想確保實際完成,請在Close調用和CreateImage調用之間使用Application.DoEvents()。

+0

偉大的工程。謝謝! – PATO7

0

,而不是試圖把屏幕(這我假設你正在做的),快照可以添加代碼到您的地圖對象,允許其本身渲染到一個離屏圖像?這樣,調用者可以將該圖像保存到文件中,或者執行其他任何想要的操作。您可以到幾乎所有的重用與一些輕微的調整當前的呈現代碼來支持離屏渲染的想法。