1

マップコントロールがあり、それをクリックすると、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);
}

例の写真。

4

2 に答える 2

2

キューに入れられたメッセージを送信するだけです。実際に実行されていることを確認する場合は、Close呼び出しとCreateImage呼び出しの間にApplication.DoEvents()を使用します。

于 2011-07-26T22:50:05.633 に答える
0

画面のスナップショットを撮ろうとする代わりに(私はあなたがやっていると仮定しています)、マップオブジェクトにコードを追加して、画面外の画像にレンダリングできるようにすることはできますか?そうすれば、呼び出し元はその画像をファイルに保存したり、それを使ってやりたいことを何でもすることができます。オフスクリーンレンダリングのアイデアをサポートするために、いくつかの微調整を加えて、現在のレンダリングコードのほぼすべてを再利用できるようになります。

于 2011-07-26T22:51:48.993 に答える