以下に述べたC#コードを試してみましたが、スナップショット撮影時には開いたファイルメニューの部分も表示されます。私は、これは私が得たスナップショットであるツールストリップメニュー項目をクリックしてMDIフォームのスクリーンショットを撮る方法
private void saveImageToolStripMenuItem_Click(object sender, EventArgs e)
{
String filename = "";
Bitmap screen = new Bitmap(network_drawing_panel.Width, network_drawing_panel.Height - 50);
using (Graphics g = Graphics.FromImage(screen))
{
g.CopyFromScreen(0, 80, 0, 0, screen.Size);
}
// SaveFileDialog
SaveFileDialog dlg = new SaveFileDialog();
dlg.InitialDirectory = @"C:\\images";
dlg.DefaultExt = ".jpg";
dlg.Filter = "JPEG Images (.jpg)|*.jpg|All files (*.*)|*.*";
dlg.Title = "Save an Image file";
if (dlg.ShowDialog() == DialogResult.OK)
{
filename = dlg.FileName;
try
{
screen.Save(filename, System.Drawing.Imaging.ImageFormat.Jpeg);
}
catch (Exception c)
{
Console.WriteLine(c.ToString());
}
}
}
クリックイベント後、保存ボタンをクリックする前に画面をキャプチャするためにいくつかの助けを必要とするが、それは開いたファイルメニューの一部を含めることはできません
。
*「クリックイベントの後、保存ボタンをクリックする前に画面をキャプチャするのには何か助けが必要です」*。これはちょうど起こることはありません。 'Click'イベントは、保存ボタンがクリックされると発生します。その間に写真を撮る間隔はありません。 –
私は知りませんが、WinFormsのPreviewMouseDownのようなものはありませんか? – Tokk
@Tokk: 'PreviewMouseDown'が何であるかわかりません。私はそれがWPFのことだと思いますが、私はWPFを使用しません。その出来事は私には分かりません。マウスボタンがクリックされてクリックされる前に*どのように知っていますか?時間旅行はまだ発明されていません。この場合でもまだメニューは表示されますので、スクリーンショットには表示されます。 –