PictureBoxが表示されない

解決


どちて坊や  2003-09-10 10:50:03  No: 108611

フォーム上にPictureBoxをたくさん貼り付けていたら、32番目以降の
PictureBoxが表示されませんでした。
31番目まではちゃんと表示できていて、Loopで回しているだけなので
コード上は問題ないと考えています。
一度に表示できるPictureBoxの数に限界とかあるのでしょうか?
また、フォーム上にたくさんの画像(50個くらい)を表示させるには
PictureBoxでは無理なのでしょうか?
どなたか詳しい方よろしくお願いします。
(WindowsXP,VB6)


デルビ(delta-bee)  URL  2003-09-10 16:45:42  No: 108612

たくさんの画像をフォーム上に表示させる場合は大げさなことを言うと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

じかに書き込んでいるんで多少間違ってるかもしれませんがこんな感じでいいはずです。


ねろ  URL  2003-09-10 16:56:05  No: 108613

>Loopで回しているだけなので
とは
For n = 1 To 50
      Load Picture1(n)
      Picture1(n).Visible = True
Next n
こんな風にLodeしてると言うことですか?
これなら2000個ほど貼り付けて見ましたが問題ありませんでした。
これでなくて初めから貼り付けてあるとしたら、
32番目以降のVisible プロパティーが Falseになっているのでは?
それだとLoopを回していると言う意味がいまいち解らないのですが。


どちて坊や  2003-09-11 11:17:12  No: 108614

デルビさん、ねろさんご指摘ありがとうございます。
実はフォームに直接コントロールを張っていていつの間にかPictureBoxが
コンテナになってしまっていてPictureBoxの中にPictureBoxを貼り付けて
しまっていました。
そのため後半部分はあるのに見えないという状態になっているだけでした。
ご協力ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加