0

ピクチャボックスに対する画面の現在の位置を必要とするピクチャボックスを実行時にコピーする際に問題があります

このコード行では、ピクチャボックスの位置を取りましたが、画面に対する位置が必要です。私たちにできる方法はありますか?

// gfxScreenshot.CopyFromScreen(pictureBox1.Bounds.X, pictureBox1.Bounds.Y, 0, 0, pictureBox1.Bounds.Size, CopyPixelOperation.SourceCopy);

 if (saveScreenshot.ShowDialog() == DialogResult.OK)
    {

       bmpScreenshot = new Bitmap(pictureBox1.Bounds.Width, pictureBox1.Bounds.Height, PixelFormat.Format32bppArgb);

       gfxScreenshot = Graphics.FromImage(bmpScreenshot);

       gfxScreenshot.CopyFromScreen(Screen.PrimaryScreen.Bounds.X, Screen.PrimaryScreen.Bounds.Y, 0, 0, Screen.PrimaryScreen.Bounds.Size, CopyPixelOperation.SourceCopy);

       bmpScreenshot.Save(saveScreenshot.FileName, ImageFormat.Png);

    }
4

1 に答える 1

3

画像ボックス自体の位置の画面座標を取得するには、次を使用します。

var screenPosition = form.PointToScreen(pictureBox1.Location);

画像ボックス内のポイントのスクリーン座標を取得するには:

var screenPosition = pictureBox1.PointToScreen(new Point(10, 10));

これにより、画像ボックス内の位置 (10, 10) の画面座標が得られます。

于 2012-04-12T17:21:58.543 に答える