フォーム上にPictureBoxをたくさん貼り付けていたら、32番目以降の
PictureBoxが表示されませんでした。
31番目まではちゃんと表示できていて、Loopで回しているだけなので
コード上は問題ないと考えています。
一度に表示できるPictureBoxの数に限界とかあるのでしょうか?
また、フォーム上にたくさんの画像(50個くらい)を表示させるには
PictureBoxでは無理なのでしょうか?
どなたか詳しい方よろしくお願いします。
(WindowsXP,VB6)
たくさんの画像をフォーム上に表示させる場合は大げさなことを言うとPictureBoxも一つも必要ありません(実際はバックグラウンドで処理をしたりとするのに1,2個は必要だが)方法としては
<画像を読み込む>
↓
<フォーム上のPictureBoxにPaintPictureで画像を追加(?)する>
↓
<新たな画像を指定し、一番上に戻る>
コードだと
'一つの画像サイズは10*10でフォーム上のPictureBoxのサイズは50*100だとする
Dim i As Integer,x as Long,y as Long
For i=0 to 50
'PictureBoxに一時的に読み込む
Picture1 = LoadPicture("test" & i & ".bmp")
'フォーム上のPicture2に画像を追加(?)する
Picture2.PaintPicture Picture1, x*10,y*10
'インデックスを繰り上げる
x=x+1
if x>5 then
x=0
y=y+1
endif
Next
じかに書き込んでいるんで多少間違ってるかもしれませんがこんな感じでいいはずです。
>Loopで回しているだけなので
とは
For n = 1 To 50
Load Picture1(n)
Picture1(n).Visible = True
Next n
こんな風にLodeしてると言うことですか?
これなら2000個ほど貼り付けて見ましたが問題ありませんでした。
これでなくて初めから貼り付けてあるとしたら、
32番目以降のVisible プロパティーが Falseになっているのでは?
それだとLoopを回していると言う意味がいまいち解らないのですが。
デルビさん、ねろさんご指摘ありがとうございます。
実はフォームに直接コントロールを張っていていつの間にかPictureBoxが
コンテナになってしまっていてPictureBoxの中にPictureBoxを貼り付けて
しまっていました。
そのため後半部分はあるのに見えないという状態になっているだけでした。
ご協力ありがとうございました。
ツイート | ![]() |