これは、アプリケーション内またはContextMenuStrip
コントロールのバグではありません。何があっても、Windowsのポップアップメニューコントロールのバグであり、WinFormsコントロールは実際にそのバグを模倣しているので、ユーザーが期待したとおりに動作します。
メモ帳などの簡単なアプリケーションでこれをテストすることができます。新しいインスタンスを開き、ドキュメント領域を右クリックして、Win + を押します。アプリケーションのウィンドウが消えても(最小化されていても)、コンテキストメニューは開いたままデスクトップに表示されます。
だから、アプリケーションでこれを「修正」することはお勧めしません。ときにローマで、ローマ人がそうであるようにやる...
あなたは絶対にがそれを試してみて、修正しを持っていた場合、あなたはあなたのフォームにlistening for a minimize eventを試してみて、手動で閉じるには、コンテキストメニューを指示することがあります。
private const int WM_SYSCOMMAND = 0x0112;
private const int SC_MINIMIZE = 0xf020;
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_SYSCOMMAND)
{
if (m.WParam.ToInt32() == SC_MINIMIZE)
{
// Close the context menu strip when the form is being minimized
cmsView.Close();
}
}
base.WndProc(ref m);
}
ありがとうございます。しかし、これを処理する方法はありますか?それは手動でcontextmenustripを閉じることです。 – Tanya
@Tanya:更新を参照してください。 –
ありがとうコーディーグレー..それを処理する方法のアイデアを得ました。 – Tanya