|
分類:[VB.NET/VB2005 以降]
VB2008のフォーム上にFlowLayoutPanelを置き、そこに画像を含むユーザーコントロールを縦に並べたものを表示しています。
ただ、このPanelに追加するユーザーコントロールが多くなった場合、Windows 7では追加したユーザーコントロールが
途中から描画されていないことが判明しました。
ただし、Windows Vistaでは最後のユーザーコントロールまできちんと表示されます。
試しに、引数の内容をコントロール上に表示するようなユーザーコントロールを作成し、
これをフォームのLoadイベントで100個FlowLayoutPanelに追加するようなテストプロジェクトを作成したところ、
34個目あたりからうまく表示されないようです。
(flpがフォーム上のFlowLayoutPanelで、ctrTestがテスト用に作成したユーザーコントロールです。)
For i As Integer = 1 To 100
Dim ctr As New ctrTest(i)
ctr.Size = New Size(800, 1000)
flp.Controls.Add(ctr)
flp.SetFlowBreak(ctr, True)
Next
Windows 7とVistaで振る舞いがこうも違うのはなぜなのでしょうか?
また、この対策はどうすればよいでしょうか?
どうかお知恵をお貸しください。
|