1

私は高度なスクリーンショットを撮るプログラムに取り組んでいます。しかし、私はバグで立ち往生しています。誰かが私を助けてくれることを願っています。

  • このコードでスクリーンショットを作成できます:

           // The screenshot will be stored in this bitmap.
        Bitmap capture = new Bitmap(screenBounds.Width, screenBounds.Height);
    
        // The code below takes the screenshot and
        // saves it in "capture" bitmap.
        g = Graphics.FromImage(capture);
        g.CopyFromScreen(Point.Empty, Point.Empty, screenBounds);
    
        // This code assigns the screenshot
        // to the Picturebox so that we can view it
        pictureBox1.Image = capture;
        pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
    
        // The code below make the form visible again, enables the "Save" button and stops the timer.
        this.Show();
        button2.Enabled = true;
        timer1.Stop();
    
  • ピクチャーボックスへの描画:

            color = new SolidBrush(Color.Black);
            Graphics g = pictureBox1.CreateGraphics();
            g.FillEllipse(color, e.X, e.Y, 10, 10);
            g.Dispose();
    

問題:図面ではなく、スクリーンショットしか保存できません。
誰かが助けてくれることを願っています

4

1 に答える 1

0

使用しないでくださいCreateGraphics()。これは一時的な描画です。キャプチャ イメージを使用します。

using (Graphics g = Graphics.FromImage(capture)) {
  g.FillEllipse(color, e.X, e.Y, 10, 10);
}
于 2013-09-24T18:23:25.773 に答える