Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
SelectActiveFrameについて
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=30487#CommentId83945
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
allgreen
 (社会人)
投稿日時
2020/5/1 16:07:03
早速のご返事ありがとうございます
確かにMSDNに「前のフレームに加えられたすべての変更が破棄されます」とありますが
フレームに変更を加えたのではなく、フレームから取り出したものまで破棄されてしまう?
ここが理解できないところですが、仕方がないのでしょうね
いろいろと試したものの結果ですが
その1
画像.SelectActiveFrame(fd, 0)
picturebox1.image=画像
画像.SelectActiveFrame(fd, 1)
picturebox2.image=画像
画像.SelectActiveFrame(fd, 2)
picturebox3.image=画像
結果は、pictureboxの3つとも2ページ目の画像
その2
画像.SelectActiveFrame(fd, 0)
picturebox1.image=画像
System.Windows.Forms.Application.DoEvents()
画像.SelectActiveFrame(fd, 1)
picturebox2.image=画像
System.Windows.Forms.Application.DoEvents()
画像.SelectActiveFrame(fd, 2)
picturebox3.image=画像
System.Windows.Forms.Application.DoEvents()
結果は、picturebox1は0ページ
picturebox2は1ページ
picturebox3は2ページの画像
その3
画像.SelectActiveFrame(fd, 0)
分割画像(0)=画像
System.Windows.Forms.Application.DoEvents()
画像.SelectActiveFrame(fd, 1)
分割画像(1)=画像
System.Windows.Forms.Application.DoEvents()
画像.SelectActiveFrame(fd, 2)
分割画像(2)=画像
System.Windows.Forms.Application.DoEvents()
picturebox1.image=分割画像(0)
picturebox2.image=分割画像(1)
picturebox3.image=分割画像(2)
結果は、pictureboxの3つとも2ページ目の画像
破棄されるのなら、なぜ「その2」は破棄されずに、こちらが思う結果になるのか
とりあえず、今回は
毎回 画像 = Image.FromFile(.FileName) からやり直すと、期待する結果になりました
ただし、毎回ファイルから読み込み直すので時間がどうなるのかが心配です
一応解決したという状態ですが、もうちょっとよい方法がないか研究中です
dobonさんのページも見て
Graphics.DrawImage を使う方法もやってみようと思いますが
これも、時間がかかるやり方なのではと考えています