Clipboard上の画像をPictureBoxに読み込んで、PaintPictureで一部だけを切り取り、切り取った結果をClipboardに再びコピーしたいのですが、うまくいかなくて困っています。
Picture1.Picture = Clipboard.GetData
Picture2.PaintPicture Picture1.Picture, 0, 0, 10, 10, 0, 0, 10, 10
Clipboard.SetData Picture2.Image
としているのですが、Picture2は切り取ったものが表示されているのに、最後のClipboardへのコピー内容は元の画像のままです。どなたかヒントをご教授ください。
SetDataする前にクリップボードをClearするとか。
SetDataする前にクリップボードをClearすると、SetDataしても最後までClipboardはClearされたままになります。
Clipboard.SetData Picture2.Image, vbCFDIB
ではいかがでしょうか?
Picture2のAutoRedrawはTrueになってますか?
あとPaintPicture時のWidthとHeightがだいぶ小さい値になってますけど、これをもっと大きい値にしてみては?
私の環境では問題無く出来ますけど。
Picture1.Picture = Clipboard.GetData
Picture2.PaintPicture Picture1.Picture, 0, 0, 900, 900, 0, 0, 900, 900
Clipboard.Clear
Clipboard.SetData Picture2.Image
みなさんありがとうございました。
原因はわかりませんが、できるようになりました。
ツイート | ![]() |