1

Windowsフォームで簡単な画像ブラウザ/ビューアアプリケーションを構築しています。

メインフォームには、自動スクロールが有効になっているPanelコントロールが含まれており、メインアプリケーションのMenuStripの下に画像のスクロール可能なコンテンツ領域を作成できます。

このパネル内には、私が定義した1つ以上のUserControlオブジェクトが動的に配置されます。これらのそれぞれには、GroupBox(サムネイルの各グループのタイトルを表示するため)が含まれています。GroupBoxには、いくつかのボタンと、画像のサムネイルを表示する1つ以上のPictureBoxオブジェクトが入力されたFlowLayoutPanelが含まれています。

各サムネイルをクリックすると、選択した画像をフルサイズで開くか、アプリケーションウィンドウ内でできるだけ画像に近​​づけることができます。これは、ウィンドウ全体を占めるPictureBoxコントロールを動的に生成し、サムネイルグリッドの上に表示するz-index値を使用して、ウィンドウを不明瞭にすることで実現されます。

私が抱えている問題は、オーバーレイされたPictureBoxコントロールを作成および破棄すると、サムネイルを含む基になるPanelコントロールが再描画され、スクロール位置が一番上にリセットされることです。これは、以前にスクロールダウンしたことがある場合は煩わしいことです。

奇妙なことに、スクロール位置が保持されることがあり、一貫性のない動作を説明するためのパターンを決定できません。

誰かがこれを防ぐためのきちんとした解決策を提案できますか?または、パネルのスクロール位置を調べて、再描画後にプログラムで同じ値に戻す必要がありますか?

4

1 に答える 1

0

パネルは不要のようです。FlowLayoutPanel の AutoSize が true に設定されていると思います。

デフォルトの AutoSize = false でスクロールが提供されるため、FlowLayoutPanel だけを使用してみてください。

于 2012-07-11T17:17:33.173 に答える