DOBON.NET DOBON.NETプログラミング掲示板過去ログ

FlowLayoutPanelに追加したコントロールが途中で切れる

環境/言語:[C# .NET Framework2.0]
分類:[.NET]


From上にAutoScroll=TrueでFlowLayoutPanelを配置し、
ボタンのクリックアクション等でFlowLayoutPanelへ、
コントロール(例えばPictureBox)を適当に追加します。

スクロールを下げていくと、途中で表示が切れてしまいます。
FlowLayoutPanelの高さが異常に大きくなるような配置を行うと
そうなるようですが、これはFlowLayoutPanelのバグなのでしょうか?

private void button_Click(object sender, EventArgs e)
{
for (int i = 0; i < 100; ++i)
{
PictureBox pbox = new PictureBox();
pbox.BorderStyle = BorderStyle.FixedSingle;
pbox.Size = new Size(400, 700);
this.flowLayoutPanel1.Controls.Add(pbox);
}
}
> スクロールを下げていくと、途中で表示が切れてしまいます。
> FlowLayoutPanelの高さが異常に大きくなるような配置を行うと
> そうなるようですが、これはFlowLayoutPanelのバグなのでしょうか?

  http://social.msdn.microsoft.com/forums/ja-JP/vsgeneralja/thread/1b746998-c397-49b8-b059-656638cd24a6/

  バグのようです・・・
  で、マイクロソフトのフィードを検索してみましたが、日本語サイト
  では報告も回避策もなく、英語サイトでは不具合報告は多数ありまし
  たが、この件に該当する回避策は見つけられませんでした。

※ 英文の見落としがあったらすいません・・・

  どなたか、見つけておられましたら、カキコお願いします!

以上。
回避策になるかは微妙ですが、

・・・
this.flowLayoutPanel1.Controls.Add(pbox);
this.flowLayoutPanel1.ScrollControlIntoView(pbox); //追加
・・・


と、直後に追加したコントロールまでスクロールを移動しながら
追加していくと、切れることなく追加されるようです。

いずれにしても、バグですね。ありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板